我有一个安装了WebChromeClient的android webview。 在网页中执行某个操作后,我会创建一条带有消息的javascript警报,该消息将传递回onJsAlert方法。
然后,根据消息我打开另一个活动。 这适用于Android> = 4,但在Android 2.3上无效。
在Android 2.3上,也会调用onJsAlert方法,但由于某种原因,传递的消息参数未定义。不知道为什么会这样,真的很感激!
答案 0 :(得分:1)
这是我使用的代码
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.demo);
try {
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setWebChromeClient(new MyJavaScriptChromeClient());
webView.loadUrl("file:///android_asset/texthtml.html");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private class MyJavaScriptChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
// handle Alert event, here we are showing AlertDialog
new AlertDialog.Builder(WebActivity.this)
.setTitle("JavaScript Alert !")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// do your stuff
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
}
这是我的html文件
<html>
<div onclick="alert('hello')"> Click Me !! </div>