android - 自定义webview的jsalert ( onJsAlert) alert
访问量: 6291
有些时候,以混合式代码写出来的webview, 在原生app中,运行alert时,会待上“网址为xxx”的页面说道。。。
显得很奇怪。所以,我们要用android的override方法来重写它。
在activity中,调用如下代码:
final Context mapp = this; webView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) { new AlertDialog.Builder(mapp) .setTitle("alert") .setMessage(message) .setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }).setCancelable(false).create().show(); return true; } @Override public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { new AlertDialog.Builder(mapp) .setTitle("confirm") .setMessage(message) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.cancel(); } }).create().show(); return true; } });