2016-08-13 9 views
1

指定したui-routerの状態で新しいBrowserWindowを作成できますか?ここに私のmain.jsです:指定されたui-router状態で新しい電子BrowserWindowが起動する

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

let win 

function createWindow() { 
    win = new BrowserWindow({ width: 950, height: 660 }) 
    win.loadURL(`file://${__dirname}/index.html`) 

    // Emitted when the window is closed. 
    win.on('closed',() => { win = null }) 

    app.dock.setMenu(Menu.buildFromTemplate([ 
    { label: 'Open at page', click:() => { goToState('page') } } 
    ])) 
} 

let goToState = (state) => { 
    if (!win) { 
    createWindow() 
    // when win is ready, call win.webContents.send('sref', state) 
    } else { 
    win.webContents.send('sref', state) 
    } 
} 

app.on('ready', createWindow) 

app.on('activate',() => { 
    if (win === null) { 
    createWindow() 
    } 
}) 

'sref'イベントは、レンダリングプロセスで$state.go(state)を実行します。

私はすでに試した:createWindow()

function createWindow (callback) { 

    ... 

    if (callback) callback() 
} 

let goToState = (state) => { 
    if (!win) { 
    createWindow(() => { 
     win.webContents.send('sref', state) 
    }) 
    } else { 
    win.webContents.send('sref', state) 
    } 
} 
    • するコールバックとして関数を渡すを使用app.on('web-contents-created')

      let goToState = (state) => { 
          if (!win) { 
          createWindow() 
          app.on('web-content-created',() => { 
           win.webContents.send('sref', state) 
          }) 
          } else { 
          win.webContents.send('sref', state) 
          } 
      } 
      

    読んでいただきありがとうございます。

  • 答えて

    1

    は、あなただけのハッシュ後の状態でURLを設定してみてくださいでした

    win.loadURL(`file://${__dirname}/index.html#/page`) 
    

    は、次のURLで構成されたUI-ルータの状態を持っていると仮定すると:

    "url":"/page" 
    
    +0

    は、状態名以来、ありがとう彼らのURLに等しい、このソリューションは、私のアプリのために十分です。 'createWindow()'に 'stateUrl'をパラメータとして追加しました。 – xAlien95

    関連する問題