Angular & Electron - Открыть ссылку в браузере по умолчанию - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь открыть ссылку из электронного приложения (используя angular) в браузере по умолчанию, но получаю следующую ошибку:

Uncaught TypeError: fs.existsSync is not a function
    at Object.<anonymous> (vendor.bundle.js:160955)
    at Object../node_modules/electron/index.js (vendor.bundle.js:160961)
    at __webpack_require__ (inline.bundle.js:55)
    at Object../src/app/components/issue/issue.component.ts (main.bundle.js:159)
    at __webpack_require__ (inline.bundle.js:55)
    at Object../src/app/app.module.ts (main.bundle.js:75)
    at __webpack_require__ (inline.bundle.js:55)
    at Object../src/main.ts (main.bundle.js:644)
    at __webpack_require__ (inline.bundle.js:55)
    at Object.0 (main.bundle.js:662)

У меня есть кнопка "(click) =" onNavigate () "" в моем html-компоненте и это функция:

import { shell } from 'electron';
...      
onNavigate() {
   shell.openExternal("http://www.google.com");
}
...

Я понятия не имею, что я делаю неправильно, и надеюсь, что кто-то здесь может мне помочь:)

1 Ответ

0 голосов
/ 26 апреля 2018

Использование window.require вместо require - это один из способов избежать конфликта между require, так как вы используете webpack и оно приносит свои require.Попробуйте:

const shell = window.require('electron');
...      
onNavigate() {
   shell.openExternal("http://www.google.com");
}
...
...