Электронная предварительная загрузка javascript с постоянством? - PullRequest
1 голос
/ 12 апреля 2019

Я пытаюсь сделать некоторую автоматизацию с моим электронным приложением в качестве доказательства концепции замены устаревшего приложения для моей компании.Я понимаю, что мы не можем реально взаимодействовать с DOM из главного окна, поэтому я пытаюсь посмотреть, какие подходы я могу использовать здесь.

Я создал файл preload.js, который вводится в окно,Этот файл предварительной загрузки по существу использует ipcRenderer для прослушивания, а затем при запуске отправляет данные обратно родителю.

Это отлично работает, я могу отправить данные из main.js в средство визуализации процесса, и оно возвращает мне данные.

// main.js
mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
        nodeIntegration: true,
        preload: path.join(__dirname, 'preload.js')
    }
})

mainWindow.loadURL('http://example.com');

// Listen for data from child
ipcMain.on('data-from-child', function (event, data) {
    console.log('From target', data)
});

// Send 
function sendData() {
    mainWindow.webContents.send('on-parent-recv', null);
}

// Send
sendData();

-

// preload.js
var ipcRenderer = require('electron').ipcRenderer;
count = 0;

// Once we get something from the parent, send data back and then increment our counter
ipcRenderer.on('on-parent-recv', function (event, data) {
    ipcRenderer.send('data-from-child', { value: 'hello', count: count });
    count++;
});

Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь нажимает другую ссылку на example.com в окне, которое мы создали, эта инъекция, по моему мнению, вводится повторно?таким образом теряет размах.В качестве теста я создал интервал и затем перешел на другую страницу.Когда я вернул данные, они снова были на 0.

Мой вопрос

Есть ли способ предварительно загрузить файл в само окно, которое не 't обновляется или перезагружается на страницу каждый раз?

Если бы я использовал, например, webview, процесс рендеринга никогда не менялся, и файл javascript оставался бы там, в то время как webview менялся бы, позволяя мнечтобы сохранить область действия / состояние.

Все, что я пытаюсь сделать здесь, это автоматизировать веб-сайт, который я загружаю в browserWindow, что оказывается трудным.Я не могу использовать nightmarejs, потому что веб-сайт использует NTLM для отправки учетных данных, и я не думаю, что это поддерживается в этой библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...