HTML5浏览器定位三次不允许定位后不再弹出定位授权提示框

分类: 365平台被黑 时间: 2025-09-18 15:37:10 作者: admin 阅读: 2996
HTML5浏览器定位三次不允许定位后不再弹出定位授权提示框

最近在微信H5页开发中遇到一个浏览器定位问题,使用geolocation定位时,IOS微信用户在点击三次取消授权定位后,页面就不会再弹窗提示获得定位授权。

经过调试发现错误信息是“Geolocation permission denied.” 浏览器默认认为用户已经拒绝授权获取位置,说明用户之前“不允许”操作已经被缓存下来,

尝试退出微信,清理微信缓存皆不奏效,后来搜索关于H5浏览器定位权限问题的解决办法,发现前辈文章http://www.skyfox.org/html5-geolocation-safari-user-permission-prompt.html 经过解读豁然开朗,

不管是原生iOS APP嵌入单个h5页面,还是都是h5页面的webapp也好,只要涉及到定位都会遇到这个情况。当请求iOS开始定位的时候,会弹出一个提示框,提示你是否"允许"定位,允许定位继续下一步,如果一不小心点了下"不允许"之后,会发现,下次进到这个h5之后再也不会提示请求定位权限的提示框了。"不允许"被缓存了下来。再次调用geolocation会报 error.PERMISSION_DENIED 错误,而且没有相应的api能重启提示框。

解决办法很鸡肋,需要在系统中就行清理缓存的设置:

设置->通用->还原->还原位置与隐私

还原设置后打开APP需要重新授予获取位置权限

相关文章

上海警方破获“万能解锁APP”案:致共享单车企业损失3亿元
barracks六级GMAT专八
英国为什么发达
阴茎的位置、结构及功能