iOS webview类型的APP首次安装后,网络授权弹框授权后任然无网的问题

[复制链接]
查看658 | 回复1 | 2024-8-5 17:24:52 | 显示全部楼层 |阅读模式
本帖最后由 qq243559086 于 2024-8-5 17:28 编辑

近几年手机对各种权限的管控是越来越严格,开发也是越来越难了。
我们的app开发过程中就遇到了这样一个问题,在iOS手机首次安装app后无法访问网络。
这个问题的产生是由于app首次访问网络时会有一个网络授权弹窗,当点击确认授权后,就应该能访问网络了。
图片11.png
事实上,使用Swift或者ObjC开发时确实是这样的。按理来说,对于 webview 混合开发的app来说,也应该一视同仁。
但苹果这个坑爹玩意儿就是 webview 中的程序无法访问网络,使用循环访问网络也是如此。
更坑爹是的网络授权弹窗没有回调给用,在各大搜索引擎搜到各种说法也说网络授权弹窗确认点击无法监控,没有回调。此题一时无从下手。
好在一次无意中搜索网络监控方案时认识了 CTCellularData 类,它有一个属性 cellularDataRestrictionDidUpdateNotifier,此属性是在蜂窝网络限制变化时回调。
抱着试一试的心态尝试了一下,发现,它在网络授权弹窗点击后会有回调,多次尝试都有回调。
这一下顿时感觉赚大发了,上题感觉有解了。马上在 cellularDataRestrictionDidUpdateNotifier 的回调中使用webview 调用js方法访问网络。可惜高兴的太早了,网络还是没通。无奈只能多次尝试,后来发现 cellularDataRestrictionDidUpdateNotifier 会有多次回调,只有它的最后一次回调时,有一定的几率能调通网络。调整代码,分别延迟500ms1000ms后使用 webview 调用js方法访问网络,哦豁,网络全通了,皆大欢喜
要是各位有更好的方法,请各位大神不吝赐教。

回复

使用道具 举报

WT_0213 | 2024-8-6 08:51:04 | 显示全部楼层
iOS不是太了解呢,帮顶下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则