我是Chrome扩展程序的新手。是否有可能通过手动(javascript)或使用清单配置为chrome扩展提供麦克风访问权限。
我通过下载twilio.js成功包含了twilio,并将协议更改为" https"用于在chrome.html的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**.
有人可以帮我解决这个错误吗?
答案 0 :(得分:3)
我找到了一种解决方法,可以在chrome扩展程序的后台页面中启用twilio。
第一次,当我们将扩展程序安装到chrome app时。只需从扩展目录创建一个带有虚拟html的新选项卡,如下面的代码片段,然后进行测试调用。
chrome.tabs.create({'url': chrome.extension.getURL('/telephony.html')}, function(tab) {
console.debug("Telephony Tab details are - ",tab);
});
它将提示用户进行麦克风访问并提供允许权限。呼叫连接后,向背景页面发送消息并在后台设置Twilio。下次您可以在后台接听电话时形成。
答案 1 :(得分:1)
我是Twilio的开发人员传播者。
我还没有在使用Twilio Client的Chrome扩展程序中尝试任何操作,但我查看了权限。在我看来,您需要包含audioCapture
权限才能通过getUserMedia
访问麦克风,这是客户使用的。
我在这里查找可用的权限:https://developer.chrome.com/apps/declare_permissions
我希望有所帮助,请告诉我是否可以继续提供帮助。
更新:
如上所述,这是Chrome打包应用的页面,而不是扩展程序。
The top answer to this question建议在扩展程序的选项页面中调用getUserMedia
。否则,有一个bug on Chrome open to add these permissions to extensions。
答案 2 :(得分:0)
最后,我成功地使用Chrome扩展程序以及一些错误信息,但Twilio功能仍然有效(标注和接收电话)。
这是我的经验,由于Twilio js库会加载外部库哪个chrome扩展名不允许,所以我手动下载了两个库
将这两个js文件保存到您的项目中并将其加载到manifest中 contentscript:
"content_scripts": [
{
****
"js": [...,"lib/twilio.js","lib/twilio-lib.js",...],
***
}
],
然后编辑第一个twilio.js; 评论打算加载lib的第62行,第66行(第二个,twilio-lib.js,我们已经包含它,所以没用)
然后你可以在chrome扩展中使用Twilio.Device对象, 它会显示许多.mp3未找到的消息,但不会阻止您使用Twilio客户端功能
我还尝试在后台页面加载js,但即使我获得了许可,麦克风也会一直关闭。