在onJsAlert没有响应水龙头之后的Android webview

Abb*_*Hoi 9 android jquery-mobile

我覆盖了我的WebChromeClient的onJsAlert行为,如:

WebChromeClient wvcc = new WebChromeClient() {
            @Override
            public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
    //...
    return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序成功处理Js警报并抑制原始警报.但是,在警报事件之后,我无法在webview中的网页上单击我的按钮(在listview的列表项中).我目前正在使用jquery mobile来构建我的网站.

还有什么我应该知道的吗?

RMa*_*lke 19

我刚刚遇到了完全相同的问题.我想生成一个自定义的android对话框而不是alert,这是最终的解决方案:

myWebView.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onJsAlert(WebView view, final String url, String message,
            JsResult result) {

        AlertDialog.Builder builder = new AlertDialog.Builder(
                MainActivity.this);
        builder.setMessage(message)
                .setNeutralButton("OK", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        arg0.dismiss();
                    }
                }).show();
        result.cancel();
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

关键是result.cancel();return true;,我在几个组合中进行了测试,并且唯一一个没有触发默认JS警报并且没有引起触摸问题的是这个组合