Electron中的Webview不允许共享屏幕?

dced5bon  于 2023-08-01  发布在  Electron
关注(0)|答案(1)|浏览(269)

我试图创建一个电子应用程序运行谷歌会议的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中使用它?

2sbarzqh

2sbarzqh1#

使用desktopCapturer共享加载URL中的屏幕在**app.whenReady()中添加此代码。**这将自动筛选第一个可用屏幕

session.defaultSession.setDisplayMediaRequestHandler((request, callback) => {
    desktopCapturer.getSources({types: ['screen']}).then((sources) => {
        callback({video: sources[0]});
     });
 });

字符串
但是如果你想选择一个特定的屏幕,你需要在Electron中实现你自己的桌面选择器对话框desktopCapturer。在回调函数中不是传递sources[0],而是发出一个电子事件,显示所有可用的屏幕,然后返回特定的源ID并将其传递给callback({video: sources[id]});
它可能不工作的情况下,谷歌会议屏幕共享,因为谷歌(安全)不允许这样做,但它的作品在我的情况下,当我必须加载bigbluebutton video conferencing网络应用程序在电子通过加载URL

相关问题