实践发现,在小程序生命周期内,如果在无网络环境下,第一次碰到需要使用授权才能使用的组件或API,微信必须通过网络读取授权信息才能使用相对功能!如果第一次有网络,那在这次生命周期里就后续均可以。这个机制在我们可以触及的所有机型和版本中都是这样。我想问以下问题:
一个用户在没网络情况下,可以把已经看过的朋友圈照片保存到本地么?那为什么小程序api需要网络才能有album权限!
一个用户在无网络情况下,为什么不能用自己手机的摄像头拍照?
一个用户在无信号的地下室仓库,为什么不能通过扫码做货品的盘点!?
一个用户在没有信号的山区内,如果不能获取自身位置,如何进行轨迹导航?
我们应用主要场景就是在山区,之前为了在无信号下可以正常使用小程序,本地数据缓存,上传队列做了很多工作,结果发现授权上居然隐藏了这样一个大问题。对于网络做这样的强依赖,的确在很多互联网业务里没什么问题,但碰到工具类的小程序,这是无法绕开的死穴!
代表全公司每天在论坛给微信小程序团队求助!!
谢谢
----
代码片段复现:
真机打开后,第一次授权使用camera
退出微信杀掉进程
打开飞行模式
重新打开微信
打开此代码片段的小程序
可以看到页面一片空白
如果把error打印出来:
detail :{ errMsg: "insertCamera:fail userAuth response is nil" } |