Android WebChromeClient.onJsAlert()如何显示系统对话框?
如果H5在android webview中显示警报,我们可以覆盖Android WebChromeClient.onJsAlert()如何显示系统对话框?,android,android-webview,Android,Android Webview,如果H5在android webview中显示警报,我们可以覆盖WebChromeClient().onJsAlert()以如下方式显示android对话框: webView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return s
WebChromeClient().onJsAlert()
以如下方式显示android对话框:
webView.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, final String url, String message, JsResult result) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage(message)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
dialog.dismiss();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.cancel();
dialog.dismiss();
}
}).show();
return true;
}
});
我想知道在哪里显示该对话框,以及如何在代码中消除它。您只需使用该方法即可
警报对话框
OnClickListener
中取消时,不要忘记调用result.confirm()
或result.cancel()
return true
显示您正在处理JS警报webView.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, final String url, String message, JsResult result) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage(message)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
dialog.dismiss();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.cancel();
dialog.dismiss();
}
}).show();
return true;
}
});