我试图创建一个电子应用程序运行谷歌会议的webview。一切正常,但当我尝试共享屏幕时,它显示错误“浏览器不支持共享屏幕”。
有没有可能的方式来共享屏幕在电子的webview?
这是我的main.js文件
const { app, BrowserWindow, desktopCapturer } = require('electron')
let mainWindow
function createWindow() {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
webviewTag: true
}
})
mainWindow.loadFile('index.html')
mainWindow.on('closed', function () {
mainWindow = null
})
mainWindow.webContents.on('did-finish-load', function() {
})
}
app.on('ready', createWindow)
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', function () {
if (mainWindow === null) {
createWindow()
}
})
字符串
这是我的html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<webview
autosize="on"
src="https://meet.google.com/"
id="webview"
data-home="https://meet.google.com/"
style="width: 100%; height: 100vh;"
></webview>
</body>
</html>
型
有些人建议使用Electron的desktopCapturer模块,但我如何在webview中使用它?
1条答案
按热度按时间2sbarzqh1#
使用desktopCapturer共享加载URL中的屏幕在**app.whenReady()中添加此代码。**这将自动筛选第一个可用屏幕
字符串
但是如果你想选择一个特定的屏幕,你需要在Electron中实现你自己的桌面选择器对话框desktopCapturer。在回调函数中不是传递sources[0],而是发出一个电子事件,显示所有可用的屏幕,然后返回特定的源ID并将其传递给
callback({video: sources[id]});
它可能不工作的情况下,谷歌会议屏幕共享,因为谷歌(安全)不允许这样做,但它的作品在我的情况下,当我必须加载bigbluebutton video conferencing网络应用程序在电子通过加载URL