u011042984 2023-11-01 13:01 采纳率: 40%
浏览 14

android webvew 中 beforeunload事件不能触发

android webvew 中 beforeunload事件不能触发。网上资料基本上都是吐槽不能触发。
从技术资料得知, android webview支持beforeunload事件。
资料链接:


但是尝试多次,就是不能触发?不知哪位能帮忙一下?谢谢!!

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-01 14:21
    关注

    【以下回答由 GPT 生成】

    在Android WebView中触发beforeunload事件的问题可能是因为WebView的相关设置导致的。以下是一些解决方案:

    1. 确保JavaScript已启用:首先,要确保在WebView中启用了JavaScript。这是通过WebSettings类的setJavaScriptEnabled方法来完成的。可以按照以下代码来设置:
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    
    1. 添加WebChromeClient:WebChromeClient类可以处理与JavaScript相关的事件,包括beforeunload事件。使用setWebChromeClient方法将WebChromeClient添加到WebView中。可以按照以下代码来设置:
    webView.setWebChromeClient(new WebChromeClient(){
        @Override
        public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) {
            // 在这里处理beforeunload事件
            return super.onJsBeforeUnload(view, url, message, result);
        }
    });
    

    在这个onJsBeforeUnload方法中,你可以实现你自己的逻辑来处理beforeunload事件。

    1. 确保页面中存在beforeunload事件:在你的HTML页面中,确保存在一个beforeunload事件处理函数。例如:
    window.onbeforeunload = function() {
        return "确认退出吗?";
    };
    

    这个函数会在页面即将关闭时触发,并返回一个字符串作为提示信息。

    如果上述解决方案均无效,那可能是由于WebView的其他设置或特定问题导致的。在这种情况下,建议你提供更多的代码和更详细的上下文信息以供分析和调试。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月1日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭