Приложение для упаковки с электроном и азаром

У меня странная проблема, я пытаюсь заставить веб-сайт работать в автономном режиме (курс электронного обучения, созданный с помощью Adapt), поэтому я создал оболочку приложения Electron:

main.js создает BrowserWindow который затем загружает index.html

function createWindow() {
    // Create the browser window.
    mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        "min-width": 800,
        "min-height": 530,
        resize: true,
        "use-content-size": true
    });

    // and load the index.html of the app.
    mainWindow.loadURL('file://' + __dirname + '/index.html');

    // Open the DevTools.
    mainWindow.webContents.openDevTools();
    // Set Window Resizable
    mainWindow.isResizable(true);

    // Emitted when the window is closed.
    mainWindow.on('closed', function () {
        // Dereference the window object, usually you would store windows
        // in an array if your app supports multi windows, this is the time
        // when you should delete the corresponding element.
        mainWindow = null;
    });
}

средство запуска курса (на котором размещен тег webview)

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        body {
            margin: 0;
            padding: 0;
            background-color: #6e6e6e;
            width: 100vw;
            height: 100vh;
        }

        webview {
            display: block;
            width: 100%;
            height: 100%;
        }

    </style>
</head>

<body>
    <webview src="build/scorm_test_harness.html" disablewebsecurity></webview>
</body>

</html>

и проблема начинается, когда я выключаю панель инструментов разработчика, после завершения курс больше не загружается, когда я раскомментирую mainWindow.webContents.openDevTools(); тогда это работает снова, в настоящее время я использую этот обходной путь:

// Open the DevTools.
mainWindow.webContents.openDevTools();
// Close (almost) immediately
setTimeout(function (webContents) {
    webContents.closeDevTools();
}, 100, mainWindow.webContents);

и это работает, но это ужасный патч, есть какие-нибудь мысли по этому поводу?

1 ответ

Добавить не пустой <script> тег где-то в head,


Объяснение:

Если на странице нет сценариев, Chrome считает, что на странице нет динамического содержимого, и не создает сценарий, который запрещает electron основные сценарии, которые должны быть введены в страницу, и что сценарии ответственны за webview Обработка тегов (есть сообщения об этой ошибке на GitHub Repo, но разработчики E-mail заявили, что это предполагаемое поведение (в ядре Chrome), по-видимому,not a bug, but a feature XD).


Вот связанная ссылка проблема.

Другие вопросы по тегам