![](/img/trans.png)
[英]Is there a way to request microphone access for a chrome extension popup?
[英]Twilio in chrome extension - user denied access to microphone
我是chrome擴展的新手。 是否可以通過手冊(javascript)或使用清單配置來提供對chrome擴展程序的麥克風訪問權限。
我已經通過下載twilio.js成功地包含了twilio,並將協議更改為“ https”,以便在chrome擴展的background.html中使用。
Manifest.js字段如下:
"permissions":["http://*/*", "https://*/*", "*://mail.google.com/*", "storage", "unlimitedStorage", "contextMenus", "cookies", "tabs", "notifications", "activeTab", "background","identity", "*://*.twilio.com/*"],
"content_security_policy": "script-src 'self' 'unsafe-eval' https://apis.google.com https://*.twilio.com; object-src 'self' https://*.twilio.com",
現在,當分機使用twilio撥打/接聽電話並接受連接時。 它從Twilio.Device.error方法引發錯誤,如下所示
error.message is **User denied access to microphone**.
誰能幫我解決這個錯誤?
我在chrome擴展程序的背景頁面中找到了一種啟用twilio的變通方法。
第一次,當我們將擴展程序安裝到chrome應用程序中時。 只需從擴展目錄中使用虛擬html創建一個新標簽,如下代碼片段所示,然后進行測試調用。
chrome.tabs.create({'url': chrome.extension.getURL('/telephony.html')}, function(tab) {
console.debug("Telephony Tab details are - ",tab);
});
它將提示用戶訪問麥克風並提供允許權限。 接通電話后,將消息發送到后台頁面並在后台設置Twilio。 下次您可以在后台接收來電。
我是Twilio的開發人員。
到目前為止,我還沒有使用Twilio Client在Chrome擴展程序中進行任何嘗試,但是我研究了這些權限。 在我看來,您需要包含audioCapture
權限,才能通過客戶端使用的getUserMedia
訪問麥克風。
我在這里查找可用的權限: https : //developer.chrome.com/apps/declare_permissions
希望對您有所幫助,讓我知道是否可以提供進一步的幫助。
更新:
如前所述,這是Chrome打包應用程序的頁面,而不是擴展程序的頁面。
該問題的最佳答案建議在擴展的選項頁中調用getUserMedia
。 否則, Chrome瀏覽器會打開一個錯誤,以將這些權限添加到擴展程序中 。
最終,我成功地通過一個棘手的方式成功地將麥克風與Chrome擴展程序配合使用,並出現了一些錯誤消息,但Twilio功能仍然可以正常使用(標注和接收呼叫)。
這是我的經驗,由於Twilio js庫將加載不允許chrome擴展的外部庫,因此我手動下載了這兩個庫
將這兩個js文件保存到您的項目中,並通過contentscript將其加載到清單中:
"content_scripts": [
{
****
"js": [...,"lib/twilio.js","lib/twilio-lib.js",...],
***
}
],
然后編輯第一個twilio.js; 評論第62行,第66行打算加載一個lib(第二個,twilio-lib.js,我們已經包含了它,所以它沒有用)
那么您可以在Chrome擴展程序中使用Twilio.Device對象,它將顯示許多.mp3找不到消息,但不會阻止您使用Twilio客戶端功能
並且我也嘗試在后台頁面中加載js,但是即使獲得許可,麥克風也會始終關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.