当前位置: 首页 > news >正文

毕业设计拼车网站的建设雨实现wap建站php源码

毕业设计拼车网站的建设雨实现,wap建站php源码,搭建公司网站,wpf做网站Electron 核心概念 主进程 通过Node.js、Electron提供的API与系统底层打交道启动项目时运行的 main.js 脚本就是我们说的主进程。在主进程运行的脚本可以以创建 Web 页面的形式展示 GUI。主进程只有一个 渲染进程 每个 Electron 的页面都在运行着自己的进程,这样…

  Electron 核心概念

主进程

  • 通过Node.js、Electron提供的API与系统底层打交道
  • 启动项目时运行的 main.js 脚本就是我们说的主进程。
  • 在主进程运行的脚本可以以创建 Web 页面的形式展示 GUI。
  • 主进程只有一个

渲染进程

  • 每个 Electron 的页面都在运行着自己的进程,这样的进程称之为渲染进程(基于Chromium的多进程结构)。
  • 创建一个窗体都会创建一个渲染进程,每个web页面运行在它自己的渲染进程中,每个渲染进程是独立的。每个BrowserWindow实例都在自己的渲染进程中运行, 当BrowserWindow实例被销毁后, 相应的渲染进程也会被终止
运行项目找到package.json的入口文件(属性main的值)即为主进程,加载入口文件 实例化BrowserWindow,加载本地index.html即为渲染进程,可以有多个渲染进程

主进程 - 生命周期

//所有窗口都关闭
app.on("window-all-closed", () => {// 对于 MacOS 系统 -> 关闭窗口时,不会直接推出应用if (process.platform !== "darwin") {app.quit(); //让app彻底关闭}
});app.whenReady().then(() => {createWindow();app.on("activate", () => {// 在macOS上,当单击dock图标并且没有其他窗口打开时,// 通常在应用程序中重新创建一个窗口。if (BrowserWindow.getAllWindows().length === 0) {createWindow();}});
});

主进程和渲染进程通信

主进程 接收与返回

//main.js 主进程文件、
const createWindow = () => {const win = new BrowserWindow({width: 1000,height: 600,webPreferences: {// 设置预加载脚本路径  注意:预加载文件属于渲染进程哦preload: path.join(__dirname, "./preload.js"),},});win.loadFile("index.html");
};ipcMain.handle("send-event", (event, msg) => {console.log("msg", msg); //主进程 接收 渲染进程的信息return msg; //返回给渲染进程
});

 渲染进程 发送与打印

//preload.js 预加载文件
const { ipcRenderer, contextBridge } = require("electron");
const handleSend=async()=>{let fallback=ipcRenderer.invoke('send-msg','这是渲染进程 -> 主进程的内容') console.log(fallback);//主进程返回过来的内容
}
//通过exposeInMainWorld把方法绑在window上
contextBridge.exposeInMainWorld('myApi',{ handleSend,
})

.html调用

<button id="btn">Send</button>
<script>document.getElementById('btn').addEventListener('click', function(){window.myApi.handleSend()})
</script>

主进程 - 事件

  • before-quit 在应用程序 开始关闭 窗口之前触发。
  • browser-window-blur 在browserWindow失去焦点时发出
  • browser-window-focus 在browserWindow获得焦点时发出
//before-quit 在应用程序开始关闭窗口之前触发。
app.on("before-quit", (e) => {console.log("App is quiting");e.preventDefault();
});//browser-window-blur 在browserWindow失去焦点时发出
app.on("browser-window-blur", (e) => {console.log("App unfocused");
});//browser-window-focus 在browserWindow获得焦点时发出
app.on('browser-window-focus', (e) => {console.log('App focused')
})

主进程 - 方法

  • app.quit() 应用关闭
  •  app.getPath(name) 获取应用文件信息
app.on('browser-window-blur', (e) => {setTimeout(() => {app.quit()}, 3000)
})app.whenReady().then(() => {console.log(app.getPath('desktop'))console.log(app.getPath('music'))console.log(app.getPath('temp'))console.log(app.getPath('userData'))
})

渲染进程如何使用 Node 模块 

方法一  

20版本所有渲染进程都采用沙盒模式,不允许在preload中使用node模块了,注意查看自己的版本。

//main.js
const createWindow = () => {const win = new BrowserWindow({width: 1000,height: 600,webPreferences: {preload:path.resolve(__dirname, "./preload.js"), //配置预加载文件 },});
//preload.js
const {contextBridge}=require('electron')
//通过exposeInIsolatedWorld将process.platform注到window对象上
contextBridge.exposeInIsolatedWorld('myApi',{platform: process.platform,
})//index.html 渲染进程 就可以访问到
console.log(window.myApi.platform);

方法二

尽量不要用,不安全!!!!自己写dome可以玩玩看

当我们想在index.html(渲染进程)中想访问文件时

<script>const fs=require('fs')console.log(fs);
</script>

require是nodejs环境语法,可以在主进程中使用,但不能渲染进程中使用 

 打通隔离

const createWindow = () => {const win = new BrowserWindow({width: 1000, height: 600, webPreferences:{nodeIntegration: true, //集成nodecontextIsolation: false,//打通隔离,主进程和渲染进程都可以使用node}});

http://www.yayakq.cn/news/741753/

相关文章:

  • 网站设计实例教程即时通讯app开发
  • 黄埔网站建设 信科网络四川建设网官网入口
  • 手机网站建设的趋势安徽建设厅网站打不开
  • 手把手教你做网站 3厘米售卡站怎么做网站
  • 葡京网站做中间商注册安全工程师报考条件及时间
  • 网站上做推广wordpress运费怎么设置
  • 关于网站开发人员的薪资下载建设银行官方网站下载安装
  • 网站ie兼容性北京做网站电话
  • 管理手机网站世界技能大赛网站建设
  • 中文字体怎么设计网站软件开发方案怎么写
  • 网站常规后台免费做自荐书的网站
  • 中企动力做的网站后台如何登陆庐江县住房和城乡建设局网站
  • 网站怎么做切换中英文用ps怎么做网站步骤
  • 网站用户角色韩国做美食的视频网站有哪些
  • 如何建设一个网站网站的经营方式
  • 有哪些做兼职的设计网站天蓝色网站
  • 智能做网站个人网站名称请
  • 企业网站运营trs网站建设平台
  • 做铁艺需要什么网站258网站建设
  • 如何维护网站app网站建设开发
  • 搜索引擎网站优化和推广方案企业主页的特点包括
  • 网站个人备案转企业备案asp 做网站的缺点
  • 为什么建手机网站建设一个普通的网站需要多少钱
  • 苏州建站公司兴田德润i网址多少长沙建站公司效果
  • 公众号授权网站学校网站管理系统 php
  • c2c交易平台官方网站购物网站起名
  • 汉中网站建设最新军事新闻12小时
  • 北京的网站设计平面素材网
  • 即墨区城乡建设局网站官网微信公众号开发步骤
  • 兴安盟网站建设鞍山网页制作