android webvew 中 beforeunload事件不能触发。网上资料基本上都是吐槽不能触发。
从技术资料得知, android webview支持beforeunload事件。
资料链接:
但是尝试多次,就是不能触发?不知哪位能帮忙一下?谢谢!!
android webvew 中 beforeunload事件不能触发
Window:beforeunload 事件 - Web API 接口参考 | MDN
当浏览器窗口关闭或者刷新时,会触发 beforeunload 事件。当前页面不会直接关闭,可以点击确定按钮关闭或刷新,也可以取消关闭或刷新。
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/beforeunload_event
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 【以下回答由 GPT 生成】
在Android WebView中触发beforeunload事件的问题可能是因为WebView的相关设置导致的。以下是一些解决方案:
- 确保JavaScript已启用:首先,要确保在WebView中启用了JavaScript。这是通过WebSettings类的setJavaScriptEnabled方法来完成的。可以按照以下代码来设置:
WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true);
- 添加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事件。
- 确保页面中存在beforeunload事件:在你的HTML页面中,确保存在一个beforeunload事件处理函数。例如:
window.onbeforeunload = function() { return "确认退出吗?"; };
这个函数会在页面即将关闭时触发,并返回一个字符串作为提示信息。
如果上述解决方案均无效,那可能是由于WebView的其他设置或特定问题导致的。在这种情况下,建议你提供更多的代码和更详细的上下文信息以供分析和调试。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 2024-五一综合模拟赛
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭