安卓webview和js交互,js navigator.onLine不生效问题解决

文章讲述了在开发过程中遇到的一个问题,即在Android5的PDA上,自定义H5页面的navigator.onLine事件在Webview中始终返回true,无法正确检测网络状态。经过一系列排查,发现是因为缺少了应用的网络状态权限配置。添加了INTERNET,ACCESS_NETWORK_STATE,ACCESS_WIFI_STATE权限后,问题得到解决,网络状态监测和online事件恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        通过安卓实现浏览自定义H5页面,H5页面有navigator.onLine事件,绑定online事件后,在浏览器或者微信都正常,自定义webview始终navigator.onLine结果是true,绑定online事件也不生效。

百思不得其解,查询也未查询到相关问题。正好手上有其他webview项目软件,就想在其他软件上测试看看,修改后,竟然可以正常获取网络状态,绑定online事件也正常显示。

期间一直以为是webview版本低导致,因为我开发的设备是一台安卓5的PDA。

后来拿到手上其他项目的进行对比,java代码都测试过,还是未生效,最后发现竟然是因为安卓没有安全,应用配置文件没有给软件网络状态权限。

后加入配置权限,完美解决。网络状态监测正常,online事件正常。记录一下,防止后续遇到同样问题。

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值