Android(安卓)webview监听网页对话框点击事件
16lz
2022-06-04
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
现在项目遇到这样一个问题,HTML5网页弹出一个Alert对话框,该文章已经被删除,Android这边需要监听用户点击确定按钮,然后返回前一个列表页面进行页面刷新删除被后台删除的的数据,具体做法如下
setting.setJavaScriptEnabled(true);//支持jssetting.setJavaScriptCanOpenWindowsAutomatically(true); webview.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { Log.i("aaa", "onJsConfirm" + "," + "url: " + url); AlertDialog.Builder builder = new AlertDialog.Builder(ArticalDetailAct.this); builder.setMessage(message) .setNeutralButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { arg0.dismiss(); finish(); } }).show(); result.cancel(); return true; } @Override public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { // TODO Auto-generated method stub Log.i("aaa", "onJsConfirm" + "," + "url: " + url);//// DialogUtils.dialogBuilder(mContext, "温馨提示", message,// new DialogCallBack() {//// @Override// public void onCompate() {// Log.i(TAG, "onJsConfirm,onCompate");// result.confirm();// }//// @Override// public void onCancel() {// Log.i(TAG, "onJsConfirm,onCancel");// result.cancel();// }// }); return true; } });
如果大家出现如下问题android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli
导致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个Activity才能添加一个窗体。
解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。
更多相关文章
- android调用js
- Android高手进阶教程(五)之----Android(安卓)中LayoutInflater的
- android 自定义 permission 权限
- 使用NDK开发SQLite3
- android adb命令
- Android(安卓)RecyclerView(和SnapHelper) 实现类似ViewPager的
- android 退出activity 转吖转
- Mac 安装 Android(安卓)Studio
- Android中获取网页表单中的数据实现思路及代码