DevTools был отключен от страницы, electron

#javascript #electron #desktop-application

#javascript #electron #desktop-приложение

Вопрос:

Ребята, мне нужно открыть какое-то веб-приложение в моем приложении electron, я использовал <webview> тег, но [официальные документы] [1] electron предлагают использовать BrowserView .
таким образом, я использовал BrowserView , НО я получил DevTools был отключен от ошибки страницы!
просто мне нужны DevTools для моего BrowserView не всего моего приложения. что мне делать?

myCode: просто main.js

 const {app, BrowserView, BrowserWindow} = require('electron');

let win;
let view;
app.on('ready', () => {
    win = new BrowserWindow({width: 800, height: 600});
    win.on('closed', () => {
        win = null
    });
    view = new BrowserView({
        webPreferences: {
            nodeIntegration: false
        }
    });
    win.setBrowserView(view);
    view.setBounds({x: 0, y: 0, width: 800, height: 600});
    view.webContents.loadURL('https://example.com');
    win.openDevTools();
});
  

Ответ №1:

openDevTools в основном это функция webContents (при использовании на BrowserWindow она только перенаправляется)

Таким образом, вы можете открыть devtools главного окна с

 win.webContents.openDevTools()
  

И для BrowserView с

 view.webContents.openDevTools()
  

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

1. { devTools: true } используется по умолчанию и не открывает их, просто включает (чтобы вы могли использовать openDevTools() )

Ответ №2:

Это происходит, когда вы открываете DevTools, не предоставляя HTML-файл (или некоторый допустимый URL) текущему окну.

При запуске вашего приложения вам необходимо загрузить HTML-файл в окно перед использованием toggleDevTools . Решите это, используя, например, mainWindow.loadUrl('url to an html file or some url') после того, как вы создадите MainWindow с помощью BrowserWindow() . Вы пытались открыть DevTools в win окне, но в нем не определен URL, так что это просто электронное окно с чем угодно внутри этого.

Ответ №3:

Я столкнулся с такой же проблемой.. не уверен, в чем точная ошибка, но в моем случае моя модель возвращала null. Я изменил это на некоторое значение и обработал с помощью jquery, который решил мою проблему.

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

1. Пожалуйста, добавьте какое-нибудь объяснение, чтобы другие могли понять! И, если возможно, добавьте свой проверенный код, чтобы мы могли помочь.