H5頁面定位獲取拒絕后,如何再彈出權(quán)限提示

原文鏈接:http://www.skyfox.org/html5-geolocation-safari-user-permission-prompt.html

不管是原生iOS APP嵌入單個h5頁面,還是都是h5頁面的webapp也好,只要涉及到定位都會遇到這個情況。

當(dāng)請求iOS開始定位的時候,會彈出一個提示框,提示你是否"允許"定位,允許定位繼續(xù)下一步,如果一不小心點了下"不允許"之后,會發(fā)現(xiàn),下次進到這個h5之后再也不會提示請求定位權(quán)限的提示框了。"不允許"被緩存了下來。再次調(diào)用geolocation會報 error.PERMISSION_DENIED 錯誤

而且沒有相應(yīng)的api能重啟提示框。

解決辦法很雞肋,需要在系統(tǒng)中就行清理緩存的設(shè)置:
(設(shè)置)Settings -> (通用)Genera -> (還原) Reset-> (還原位置與隱私)Reset Location & Privacy.
(設(shè)置)Settings ->( 隱私)Privacy 開啟 Location Services.

重新進入頁面即可提示用戶權(quán)限提示了!

如果說h5頁面用于app中顯示,可以嘗試使用js與app原生交互來獲取定位,原生獲取定位后反傳給h5,這樣當(dāng)整個app的定位權(quán)限被用戶拒絕與開啟的時候,直接到設(shè)置中對應(yīng)的app下就可以恢復(fù)了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容