В окне электронного браузера macOS.loadUrl не работает

#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}`)
    } 
 

я много искал ответ, но не получил никакого ответа на этот вопрос.
может ли кто-нибудь предложить решение для этого? любая помощь будет оценена по достоинству.

запустить электрон

safari загружает URL-адрес

Комментарии:

1. Видите ли вы какие-либо ошибки? Вы инициализировали новое окно браузера и привязали его к win нему ? Простой пример можно найти в документации. electronjs.org/docs/api/browser-window

2. я не видел никаких ошибок, тем не менее,он использует плагин 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. распечатайте переменную среды перед загрузкой, какие-либо проблемы?