發布日期:2025 年 5 月 12 日
建議的 HTML <permission>
元素仍在來源試用階段,Chrome 團隊會根據初始來源試用奠定的基礎,進一步改良這個元素。這篇文章將介紹相關強化功能,讓您在網頁應用程式中要求權限時,享有更大的彈性和控制權。如要全面瞭解 <permission>
元素的簡介和初始功能,請參閱先前的文章「新 HTML <permission>
元素的原始碼試用」。
備用使用者體驗的內容支援
在 Chrome 136 之前,<permission>
元素最初定義為沒有內容的空元素。從 Chrome 137 開始,這項功能支援內容,因此必須使用開頭和結尾標記標示內容:
<permission>
<!-- optional content -->
</permission>
這項變更可讓您在元素的內容中加入備用使用者介面。如果瀏覽器不支援 <permission>
元素,或是指定了不支援的 type
屬性,就會顯示這些備用內容。這樣可確保在不同瀏覽器環境中,使用者體驗能更順暢地降級,並獲得改善。
<!-- Invalid `type` attribute value -->
<permission type="not-supported">
<p>Your browser does not support the specified <code>type</code>.</p>
</permission>
更詳細的程式輔助特徵偵測
為協助您判斷是否支援特定權限類型,我們推出了靜態方法 isTypeSupported()
:
HTMLPermissionElement.isTypeSupported('geolocation');
這個方法會傳回布林值,指出是否支援指定的權限類型。結合現有的功能偵測 typeof
HTMLPermissionElement !== 'undefined'
,您現在可以透過程式輔助,確保支援 <permission>
元素和特定權限類型。
請注意,您也可以傳遞多個以空格分隔的權限類型 (例如 "camera microphone"
),系統會傳回整個字串是否為有效的 "type"
值。舉例來說,使用下列參數呼叫 isTypeSupported()
會傳回這些結果:
"camera"
→true
"geolocation"
→true
"camera geolocation"
→false
(即使系統個別支援這些類型,也不支援組合類型)。
更新的活動名稱
在 Chrome 136 中,我們推出了兩個新事件,取代先前的事件:
onpromptdismiss
(取代ondismiss
)onpromptaction
(取代onresolve
)
這些新事件提供更清楚的語意,且更符合元素的行為。舊版事件將在 Chrome 138 中淘汰,因此建議您據此更新事件處理常式。
圖示支援
我們正努力在 Chrome 138 中,為 <permission>
元素啟用圖示支援功能。這項功能可讓您顯示與權限類型相應的預先定義圖示,並提供有限的樣式選項,例如調整顏色和大小。確切的 API 詳細資料仍在最後定案中。
下列範例顯示預設值、不同填滿顏色,以及沒有填滿顏色但有黑色外框的情況。
預設樣式設定
圖示的預設顏色與權限元素文字顏色相同。
修改樣式
以下範例顯示預設樣式的修改範例。
變更圖示顏色
::permission-icon {
fill: black;
}
圖示外框變更
::permission-icon {
fill: white;
stroke: black;
stroke-width: 20px;
}
停用圖示
啟動後,圖示會預設為啟用。如要停用圖示,可以使用下列 CSS 程式碼
::permission-icon {
display: none;
}
樣式規範
如需有關 <permission>
元素樣式的完整指南,包括最佳做法和限制,請參閱<permission>
樣式指南。這項資源提供詳細說明,協助您在應用程式中有效設定元素樣式。
支援更多平台和功能
<permission>
元素現在支援更多平台和功能:
- Android 支援:這個元素現在可在 Android 裝置上運作,適用於各種使用者平台。
- 地理位置支援:您現在可以使用
<permission>
元素和額外的preciselocation
布林屬性,要求type="geolocation"
權限。preciselocation
屬性只會影響提示的措辭,但我們正積極努力,在日後的更新中區分粗略和精確位置資訊權限。
結論
我們一直致力於簡化權限要求,並提升網頁使用者體驗,因此對 <permission>
元素進行這些強化。歡迎試用這些新功能,並提供意見回饋,協助我們改善這項功能。