1
1
const path = require ( 'path' ) ;
2
2
3
- const { shell } = require ( 'electron' ) ;
3
+ const { shell, protocol } = require ( 'electron' ) ;
4
4
const serve = require ( 'electron-serve' ) ;
5
5
6
6
const netTypes = [ 'mainnet' , 'testnet' ] ;
7
+ const privileges = {
8
+ standard : true ,
9
+ secure : true ,
10
+ allowServiceWorkers : true ,
11
+ supportFetchAPI : true ,
12
+ corsEnabled : true
13
+ } ;
14
+
7
15
8
16
function serveFile ( netType ) {
9
17
return serve ( {
10
- directory : path . join ( global . APP_PATH , netType === 'mainnet' ? 'walletPages' : 'walletPages-test' )
18
+ directory : path . join ( global . APP_PATH , netType === 'mainnet' ? 'walletPages' : 'walletPages-test' ) ,
19
+ scheme : netType
11
20
} ) ;
12
21
}
13
22
14
- serveFile ( 'mainnet' ) ;
15
23
serveFile ( 'testnet' ) ;
24
+ serveFile ( 'mainnet' ) ;
25
+
26
+ // This is for fix a bugs of muti-scheme of electron-serve, details: https://www.electronjs.org/docs/api/protocol#protocolregisterschemesasprivilegedcustomschemes
27
+ protocol . registerSchemesAsPrivileged ( netTypes . map ( item => {
28
+ return {
29
+ scheme : item ,
30
+ privileges
31
+ }
32
+ } ) ) ;
16
33
17
34
function loadWebDom ( ) {
18
35
const walletWindow = global . WALLET_WIN ;
@@ -27,15 +44,15 @@ function loadWebDom() {
27
44
if ( process . env . HOT_RELOAD === 'true' ) {
28
45
walletWindow . loadURL ( 'http://localhost:8081' ) ;
29
46
} else {
30
- global . WALLET_WIN . loadURL ( `app:// ${ netType } .vite.net` ) ;
47
+ global . WALLET_WIN . loadURL ( `${ netType } ://x .vite.net` ) ;
31
48
}
32
49
33
50
walletWindow . webContents . once ( 'dom-ready' , ( ) => {
34
51
console . info ( 'Web dom ready' ) ;
35
52
} ) ;
36
53
37
54
global . viteEventEmitter . on ( 'change-net' , ( _netType ) => {
38
- global . WALLET_WIN . loadURL ( `app:// ${ _netType } .vite.net` ) ;
55
+ global . WALLET_WIN . loadURL ( `${ _netType } ://x-test .vite.net` ) ;
39
56
} ) ;
40
57
}
41
58
@@ -47,16 +64,6 @@ module.exports = function loadWeb() {
47
64
console . info ( 'Start to load web.' ) ;
48
65
loadWebDom ( ) ;
49
66
50
- // global.WALLET_WIN.webContents.on('will-navigate', (event, url) => {
51
- // if (url.indexOf('file') !== 0) {
52
- // return;
53
- // }
54
-
55
- // event.preventDefault();
56
- // console.info(`Location change: ${url}`);
57
- // loadWebDom();
58
- // });
59
-
60
67
// Redefine file
61
68
global . WALLET_WIN . webContents . on ( 'new-window' , ( event , url ) => {
62
69
event . preventDefault ( ) ;
0 commit comments