【问题标题】:How to Load Certain Route on Electron App Activate Event如何在 Electron 应用激活事件上加载某些路由
【发布时间】:2017-08-13 20:33:44
【问题描述】:

activate 事件被触发时,我很难弄清楚如何加载特定路线。我正在使用Electron-Vue framework 创建一个电子应用程序,并且我有以下路线:

export default [
  {
    path: '/',
    name: 'login-page',
    component: require('components/LoginPageView')
  },
  {
    path: '/tracker',
    name: 'tracker-page',
    component: require('components/TrackerPageView')
  },
  {
    path: '*',
    redirect: '/'
  }
]

现在,我想在app.on('activate') 被触发后加载/tracker 路由:

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

这背后的主要原因是我正在创建一个有两个窗口的 Electron 应用程序。第一个窗口是登录,第二个窗口是用户配置文件。当用户已经登录并使用系统关闭按钮关闭应用程序时,应用程序停留在 Dock 栏中,当单击应用程序时,将触发 Electron activate 事件并再次显示登录屏幕。由于用户已经登录,我不希望用户再次显示登录窗口。任何建议都将不胜感激。

【问题讨论】:

    标签: vue.js electron vue-router


    【解决方案1】:

    我终于能够通过使用Vue-Router Per-Route Guard beforeEnter 方法来实现这一点。这是我的草稿:

    let auth = true
    
    export default [
      {
        path: '/',
        name: 'login-page',
        component: require('components/LoginPageView'),
        meta: {
          auth: false
        },
        beforeEnter: (to, from, next) => {
          if (auth) {
            next('/tracker')
          } else {
            next()
          }
        }
      },
      {
        path: '/tracker',
        name: 'tracker-page',
        component: require('components/TrackerPageView'),
        meta: {
          auth: true
        }
      },
      {
        path: '*',
        redirect: '/'
      }
    ]
    

    欢迎任何反馈以更好地改进这一点:)

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 1970-01-01
      • 2015-02-09
      • 2020-12-21
      • 2018-10-19
      • 1970-01-01
      • 2021-12-15
      • 2019-12-15
      • 2017-09-30
      相关资源
      最近更新 更多