重新思考權限請求:<geolocation>元素讓使用者搞清楚狀況後主動允許
很多網站一打開就會跳「權限請求」的視窗,使用者第一個反應通常是:「為什麼要我的位置」、「我連內容都還沒看為何就要我訂閱」、「為什麼要我的xx存取權」,結果就是使用者直接拒絕。 Chrome 144 新增的 <geolocation> 就是在處理這類問題:在使用者理解網站功能後,讓權限請求從網站方變成使用者自己主動要求。 <geolocation> 在做什麼 一定要使用者點擊後才會問權限 不是 JavaScript 自己跳視窗,使用者已有心理準備。 請求發生在有情境的地方 例如「找附近店家」按鈕,點了才要位置,很直覺。 之前拒絕過,也還有回頭路 不用叫使用者自己跑去翻瀏覽器或系統設定。 開發者少寫一堆平台判斷 權限流程、系統層級阻擋,瀏覽器幫忙處理。 它不是突然冒出來的 一開始 Chrome 是用一個比較泛用的 <permission> 元素 做測試,從 Chrome 126 到 143 都在 origin trial。 後來發現,與其什麼權限都塞在同一個元素,不如拆成「用途明確」的元素比較好用,所以才有現在的 <geolocation> 。 相關文章: 對 <permission> 元素的再強化 。 實際怎麼用 用法很單純,就是把它當成一個 HTML 控制項放在畫面上。不支援的瀏覽器會自動吃裡面的 fallback。 <p> 點擊下方按鈕,找你附近的地點 <geolocation> <button onclick="requestLocationLegacy()"> 使用我目前的位置 </button> </geolocation> </p> 不支援 <geolocation> 的瀏覽器,會直接顯示裡面的 <but...
