Android WebView 中只有一个 javascript 警报,然后它停止响应

发布于 2024-11-15 20:38:45 字数 429 浏览 10 评论 0原文

我在 WebChromeClient 中为嵌入的 WebView 设置了一个 javascriptalert() 处理程序:

@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)  
{
  Log.d("alert", message);
  Toast.makeText(activity.getApplicationContext(), message, 3000).show();
  return true;
};

不幸的是,这只显示弹出 toast 一次,然后 WebView 停止响应任何事件。我什至无法使用菜单命令加载另一个页面。我在 LogCat 中没有看到错误,这可能是什么问题?

I set up a javascript alert() handler in a WebChromeClient for an embedded WebView:

@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)  
{
  Log.d("alert", message);
  Toast.makeText(activity.getApplicationContext(), message, 3000).show();
  return true;
};

Unfortunately, this only shows a popup toast once, then the WebView stops responding to any events. I can't even use my menu command to load another page. I don't see errors in LogCat, what could be the problem here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画▽骨i 2024-11-22 20:38:45

您需要对 JsResult result 参数调用 cancel()confirm()

You need to invoke cancel() or confirm() on the JsResult result parameter.

抹茶夏天i‖ 2024-11-22 20:38:45

添加这个

        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
            result.confirm();
            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
            return true;
        }

add this

        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
            result.confirm();
            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
            return true;
        }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文