cha*_*123 3 google-chrome google-chrome-extension webrtc getusermedia
Chrome已经引入了WebRTC屏幕共享扩展的使用.在此,每个域都必须具有扩展名,以便人们安装扩展以便使用webrtc共享屏幕.
这是我的用例:
在正在进行的webrtc视频通话期间,如果一个人需要进行屏幕共享而没有扩展,则在安装扩展后需要刷新页面.这会中断呼叫,两个人都需要再次加入呼叫.
我想使用javascript控制用户体验,因此不需要刷新.但是如果我们不刷新,html页面就无法识别最近安装的扩展.
我已经看过许多关于此的开源代码,但它们都没有类似于我的用例.他们假设在会话期间安装扩展.
但是,我见过www.uberconference.com并且他们有类似的用例.我尝试在实时通话期间安装屏幕共享扩展,它不需要页面刷新,也没有中断通话.它在安装扩展后立即进行了屏幕共享.
我无法理解他们是如何做到的,因为优步不是开源的.许多人说安装扩展后必须刷新.在这种情况下的任何帮助将受到高度赞赏.
以下是使用内联安装安装chrome扩展的方法:
$scope.installExtension= function(){
!!navigator.webkitGetUserMedia
&& !!window.chrome
&& !!chrome.webstore
&& !!chrome.webstore.install &&
chrome.webstore.install('https://chrome.google.com/webstore/detail/<some-id>',
successInstallCallback,
failureInstallCallback
);
};
function successInstallCallback() {
//location.reload();
}
function failureInstallCallback(error) {
alert(error);
}
Run Code Online (Sandbox Code Playgroud)
这是我们最近改变的getScreenMedia.查看拉取请求以了解我们是如何做到的:
我写了关于我博客上的更改,所以请查看更多详细信息,但重要的是:
chrome.runtime.connect我们可以使用外部消息传递,而不是直接创建通信通道和直接消息传递.我们可以chrome.runtime.sendMessage(extensionId, options, callback)在后台脚本中使用和,而不是向内容脚本拾取并传递给后台脚本(反之亦然)的窗口发送消息chrome.runtime.onMessageExternal.这适用于其他解决方案没有的情况,因为后台脚本在扩展安装时立即加载,而内容脚本在页面加载时注入.
所以,基本上,扩展使用不同的权限:
"externally_connectable": {
"matches": [
"https://example.com/*"
]
}
Run Code Online (Sandbox Code Playgroud)
还有一个不同的API:
chrome.runtime.sendMessage 结合 chrome.runtime.onMessageExternal 代替
window.postMessage结合window.addEventListener('message')和chrome.runtime.connect.至少有两个不同的站点https://apps.mypurecloud.com和https://beta.talky.io与内联扩展安装进行屏幕共享,完全没有重新加载.
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |