- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个安装了 WebChromeClient 的 android webview。在网页中执行特定操作后,我创建了一个带有消息的 javascript 警报,该消息被传递回 onJsAlert 方法。
然后,根据消息我打开另一个 Activity 。这适用于 Android >= 4 但不适用于 Android 2.3。
在 Android 2.3 上,onJsAlert 方法也被调用,但传递的消息参数由于某种原因未定义。知道为什么会发生这种情况,我们将不胜感激!
最佳答案
这是我使用的代码
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>
关于javascript - WebChromeClient onJsAlert 收到未定义的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19378901/
我正在打电话 webView.loadUrl("javascript:alert(javascriptFunc())); webView.setUpWebChromeClient( new WebCh
我有一个安装了 WebChromeClient 的 android webview。在网页中执行特定操作后,我创建了一个带有消息的 javascript 警报,该消息被传递回 onJsAlert 方法
我在 WebView 中运行 JS 脚本。该脚本向 WebView 发出一条消息提醒,我想在我的应用程序中接收它。问题是 onJSAlert 没有被调用,我也不能在定义方法时使用 @Override
我已经覆盖了我的 WebChromeClient 的 onJsAlert 行为,例如: WebChromeClient wvcc = new WebChromeClient() {
我是一名优秀的程序员,十分优秀!