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 のようなものでできそうなのですが。

0 件のコメント:

コメントを投稿