发帖
1 0 0

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

qq243559086
高级会员

14

主题

0

回帖

638

积分

高级会员

积分
638
爱星物联IoT云平台 858 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方法访问网络,哦豁,网络全通了,皆大欢喜
要是各位有更好的方法,请各位大神不吝赐教。

──── 0人觉得很赞 ────

使用道具 举报

2024-8-6 08:51:04
iOS不是太了解呢,帮顶下
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28275 个
  • 话题数: 40255 篇