2018年11月16日金曜日
2018年11月12日月曜日
Electron-builderでパッケージ化すると外部ファイルへのリンクが開かない
<a href="example.pdf" target="_blank">PDFを開く</a>
のようなリンクは、main.jsに
//新しいウインドウを開くリンクの処理
win.webContents.on('new-window',(e,url)=>{
e.preventDefault();
shell.openExternal(url);
});
のような感じで書いておけば、Electronアプリでは開くのですが、Electron-builderでパッケージ化すると動作しなくなってしまいす。
調べたところ、Electron-builderはデフォルトでasarでパッケージ化するので、パスが読めなくなるということでした。
参考:File access after building · Issue #7477 · electron/electron · GitHub
https://github.com/electron/electron/issues/7477
それで、package.json 内にasarの無効化を追記してみました。
・・・・・
"build": {
"asar": false
},
・・・・・
すると、実行マシンのデフォルトビューワーでPDFが開きました。
ただ、セキュリティ上よろしくないようなので、Electronアプリ内でPDF表示できる方法も追って考えてみます。
たぶん、electron-pdf-window のようなものでできそうなのですが。
たぶん、electron-pdf-window のようなものでできそうなのですが。
2018年11月10日土曜日
Electron: 新しいウインドウを開く(target="_blank")リンクの開き方
ElectronのBrowserWindowでexternal linkを踏んだ時にブラウザで開く - Qiita
https://qiita.com/k0kubun/items/baa0b2ee3d25f1e2f86d
とりあえず、以下の赤文字部分を追記すれば、外部プログラムで開くようになる。
import { shell } from 'electron';
mainWindow = new BrowserWindow({ ... });
mainWindow.webContents.on('new-window', (event, url) => {
event.preventDefault();
shell.openExternal(url);
})
mainWindow.loadURL(...);
https://qiita.com/k0kubun/items/baa0b2ee3d25f1e2f86d
とりあえず、以下の赤文字部分を追記すれば、外部プログラムで開くようになる。
import { shell } from 'electron';
mainWindow = new BrowserWindow({ ... });
mainWindow.webContents.on('new-window', (event, url) => {
event.preventDefault();
shell.openExternal(url);
})
mainWindow.loadURL(...);
2018年11月6日火曜日
2018年11月3日土曜日
登録:
投稿 (Atom)