#electron
Вопрос:
я новичок в electron. я использовал плагин Vue CLI Electron Builder для создания базового проекта. в окне браузера.Загружайте, чтобы это работало. но в окне браузера macos.loadUrl не работает. версия macos 10.10.5, электронная версия 11.4.7
try {
//it not working on macos
await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL)
} catch (err) {
//can't catch any err on macos
console.log(`loadURL err, url: ${process.env.WEBPACK_DEV_SERVER_URL}, info: ${err}`)
}
я много искал ответ, но не получил никакого ответа на этот вопрос.
может ли кто-нибудь предложить решение для этого? любая помощь будет оценена по достоинству.
Комментарии:
1. Видите ли вы какие-либо ошибки? Вы инициализировали новое окно браузера и привязали его к
win
нему ? Простой пример можно найти в документации. electronjs.org/docs/api/browser-window2. я не видел никаких ошибок, тем не менее,он использует плагин Vue CLI Electron Builder для создания базового проекта, он также инициализирует новое окно браузера и привязывает его к win
3. Почему вы поместили его в блок try/catch? Попробуйте использовать события экземпляра вместо асинхронного ожидания loadUrl. electronjs.org/docs/api/browser-window#instance-events
4. И какова ценность process.env.WEBPACK_DEV_SERVER_URL? Убедитесь, что это действительный URL-адрес, который является общедоступным.
5. я уверен, что значение process.env.WEBPACK_DEV_SERVER_URL является допустимым URL-адресом(локальный хост:8098), скопируйте URL-адрес в Safari
Ответ №1:
Ниже функции loadUrl…
if (process.env.WEBPACK_DEV_SERVER_URL) {
// Load the url of the dev server if in development mode
await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL)
if (!process.env.IS_TEST) win.webContents.openDevTools()
} else {
createProtocol('app')
// Load the index.html when not in development
win.loadURL('app://./index.html')
}
Попробуйте добавить этот блок кода, чтобы проверить, готово ли содержимое страницы или она завершила загрузку. Если это так, покажите окно и сосредоточьтесь на нем.
win.webContents.on('did-finish-load', () => {
if (!win) {
throw new Error('`win` is not defined');
}
if (process.env.START_MINIMIZED) {
win.minimize();
} else {
win.show();
win.focus();
}
});
Комментарии:
1. сделал-закончил-загрузку , ничего не происходит.
2. Как вы указываете WEBPACK_DEV_SERVER_URL перед запуском приложения или какую фактическую команду вы используете при запуске приложения? Возможно, что env пуст, поэтому по умолчанию он равен index.html.
3. Это не имеет никакого отношения к WEBPACK_DEV_SERVER_URL, даже если я загружаю веб-URL, такой как GitHub , он не работает. вы можете получить его по ссылке на изображение( Загрузить веб-адрес )
4. Это может быть проблемой. Возможно, что переменная среды на самом деле не добавлена. Попытайся утешить. войдите в блок if.
5. распечатайте переменную среды перед загрузкой, какие-либо проблемы?