热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

electron如何打开新页面的时候加载路由地址呢?

项目是由vue-cli3加vueaddelectron-builder创建的,electron的程序写在background.js中其他的页面和vuecli3创建

项目是由vue-cli3加 vue add electron-builder 创建的,
electron的程序写在 background.js中

其他的页面和vuecli3创建的一样,现在需求是这样的 点击登录,打开新的窗口跳往主页路由并关闭原来的窗口

我现在该如何修改路由呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import { app, protocol, ipcMain, BrowserWindow } from 'electron';

import {

  createProtocol,

  // installVueDevtools,

} from 'vue-cli-plugin-electron-builder/lib';



const isDevelopment = process.env.NODE_ENV !== 'production';



// Keep a global reference of the window object, if you don't, the window will

// be closed automatically when the Javascript object is garbage collected.

let win;

let home;

// Scheme must be registered before the app is ready

protocol.registerSchemesAsPrivileged([{ scheme: 'app', privileges: { secure: true, standard: true } }]);



function createLoginWindow() {

  // Create the browser window.

  win = new BrowserWindow({

    width: 430,

    height: 330,

    frame: false,

    // resizable: false,

    maximizable: false,

    webPreferences: {

      nodeIntegration: true,

    },

  });



  if (process.env.WEBPACK_DEV_SERVER_URL) {

    // Load the url of the dev server if in development mode

    win.loadURL(process.env.WEBPACK_DEV_SERVER_URL);

    // if (!process.env.IS_TEST) win.webContents.openDevTools();

  } else {

    createProtocol('app');

    // Load the index.html when not in development

    win.loadURL('app://./index.html');

  }



  win.on('closed', () => {

    win = null;

  });

}



function createHomeWindw() {

  home = new BrowserWindow({

    width: 282,

    height: 667,

    center: true,

    frame: false,

    // resizable: false,

    parent: win,

    show: false,

    modal: true,

    webPreferences: {

      nodeIntegration: true,

    },

  });

  if (process.env.WEBPACK_DEV_SERVER_URL) {

    // Load the url of the dev server if in development mode

    home.loadURL(process.env.WEBPACK_DEV_SERVER_URL);

    if (!process.env.IS_TEST) win.webContents.openDevTools();

  } else {

    createProtocol('app');

    // Load the index.html when not in development

    home.loadURL('app://./index.html');

  }

  // home.loadURL('http://www.baidu.com');

  home.on('closed', () => {

    home = null;

  })

  home.once('ready-to-show', () => {

    // win.hide()

    home.show()

  })

}





// 监听到关闭登陆主窗口,直接退出程序

ipcMain.on('close', () => {

  app.quit();

});

// 监听最小化主窗口

ipcMain.on('min', () => win.minimize());



// 监听登陆成功

ipcMain.on('login', () => {

  // if (home === null) {

  createHomeWindw();

  // home.show()

  // }

});



// Quit when all windows are closed.

app.on('window-all-closed', () => {

  // On macOS it is common for applications and their menu bar

  // to stay active until the user quits explicitly with Cmd + Q

  if (process.platform !== 'darwin') {

    app.quit();

  }

});





app.on('activate', () => {

  if (win === null) {

    createLoginWindow();

  }

});



app.on('ready', async () => {

  if (isDevelopment && !process.env.IS_TEST) {

    // Install Vue Devtools

    // Devtools extensions are broken in Electron 6.0.0 and greater

    // See https://github.com/nklayman/vue-cli-plugin-electron-builder/issues/378 for more info

    // Electron will not launch with Devtools extensions installed on Windows 10 with dark mode

    // If you are not using Windows 10 dark mode, you may uncomment these lines

    // In addition, if the linked issue is closed, you can upgrade electron and uncomment these lines

    // try {

    //   await installVueDevtools()

    // } catch (e) {

    //   console.error('Vue Devtools failed to install:', e.toString())

    // }



  }

  createLoginWindow();

});



// Exit cleanly on request from parent process in development mode.

if (isDevelopment) {

  if (process.platform === 'win32') {

    process.on('message', (data) => {

      if (data === 'graceful-exit') {

        app.quit();

      }

    });

  } else {

    process.on('SIGTERM', () => {

      app.quit();

    });

  }

}



推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • LeetCode笔记:剑指Offer 41. 数据流中的中位数(Java、堆、优先队列、知识点)
    本文介绍了LeetCode剑指Offer 41题的解题思路和代码实现,主要涉及了Java中的优先队列和堆排序的知识点。优先队列是Queue接口的实现,可以对其中的元素进行排序,采用小顶堆的方式进行排序。本文还介绍了Java中queue的offer、poll、add、remove、element、peek等方法的区别和用法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
烟为你吸_811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有