2012-11-13 45 views
1

假設我在瀏覽器中使用getUserMedia javascript api。瀏覽器詢問用戶是否有權使用相機或麥克風。如何檢測瀏覽器詢問用戶設備權限?

如何檢測瀏覽器何時請求這些權限,以便我可以向用戶解釋爲什麼應用程序要求權限?

回答

1

據我所知這不是直接可能的,但是你應該能夠推斷出用戶正在看到一個提示。

大概是因爲你正在編寫javascript,你決定什麼時候打電話給getUserMedia(),所以你可以提供額外的解釋,作爲導致這個過程的一部分。一個精心設計的頁面應該解釋發生了什麼事情,以便用戶知道之前發生了什麼,他們被提示將其攝像頭的控制權交還給他人。這就是說,你可以推斷出一個用戶在發送請求時看到權限提示,但沒有收到錯誤回調或成功回調。鑑於此,您可以在您首次提示權限時同時設置一個計時器,如果沒有成功或錯誤返回幾秒鐘,則會觸發此權限,在這種情況下,您可以合理地假定用戶已被提示瀏覽器提示但尚未迴應。

+1

謝謝。這是我一起去的。無論如何,在使用getUserMedia之前,要求用戶輸入(如按鈕按鈕或其他)可能是個好主意。 – mgerring

0

這是一個本地UI功能,不會暴露給JavaScript,因此無法檢測對話框何時出現。所有支持getUserMedia的瀏覽器都會要求獲得許可,但是,如果您檢測到getUserMedia API的支持,那麼您可以在此處顯示您的解釋,而其他瀏覽器上的用戶將看不到它。