我试图将webview的html按钮点击检测到java代码(In activity).

我提到另一个SO

Detect click on HTML button through javascript in Android WebView

但是没有用.我的代码:

的index.html

function js1() {

document.loginform.method="post";

document.loginform.action = "https://example.com/chechlogin.asp";

}

MainActivity.java

package com.example.webview;

import android.os.Bundle;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.view.Window;

import android.webkit.JavascriptInterface;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

@SuppressLint("SetJavaScriptEnabled")

public class MainActivity extends Activity {

private EditText field;

private WebView browser;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

field = (EditText)findViewById(R.id.urlField);

browser = (WebView)findViewById(R.id.webView1);

browser.getSettings().setJavaScriptEnabled(true);

browser.setWebViewClient(new MyBrowser());

browser.loadUrl("file:///android_asset/index.html");

}

@SuppressLint("JavascriptInterface")

public void open(View view){

String url = field.getText().toString();

browser.getSettings().setLoadsImagesAutomatically(true);

browser.getSettings().setJavaScriptEnabled(true);

browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

browser.loadUrl(url);

browser.addJavascriptInterface(new Object()

{

@JavascriptInterface

public void performClick()

{

Log.d("LOGIN::", "Clicked");

Toast.makeText(MainActivity.this, "Login clicked", Toast.LENGTH_LONG).show();

}

}, "login");

}

private class MyBrowser extends WebViewClient {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

但是没有调用performClick()方法.

请更正错误.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐