博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
electron 入门
阅读量:6821 次
发布时间:2019-06-26

本文共 2549 字,大约阅读时间需要 8 分钟。

hot3.png

 

ELectron与Nw.js的技术差异

1. 应用入口     

        Nw.js的应用入口为一个页面,在package.json中指定主页面,它作为应用的主窗口打开

{  "name": "app_name",  "version": "app_version",  "main": "index.html"}

        Electron的应用入口是一个JavaScript脚本。与Nw直接提供一个URL不同,需要手动创建一个浏览器窗口,然后通过APi加载HTML文件、监听窗口事件、决定何时退出应用。

{  "name": "app_name",  "version": "app_version",  "main": "main.js",}

2. 构建系统

        Electron公国 libchromiumcontent 访问Chromium的ContentAPI。libchromiumcontent 是一个独立的、引入了Chromium Content模块及所有依赖的共享库。

3. Node集成

        Nw.js中,网页中Node集成需要通过给Chromium打补丁来实现。

        ELectron中,Node集成通过各品台的消息循环与libuv的循环集成,避免了直接在Chromium上做改动

Quick Start

    一个最简单的electron项目包含三个文件,package.json ,index.html,main.js

    package.json是Node.js的项目配置文件, index.html是桌面应用的界面页面,main.js是应用的启动入口文件。其中,核心文件是 index.html 和 main.js.

    index.html是应用展示界面:

      
Hello World!

Hello World!

We are using node , Chrome , and Electron .

    main.js是electron应用的入口文件:

const electron = require('electron');const { app } = electron;const { BrowserWindow } = electron;let win;function createWindow() {  // 创建窗口并加载页面  win = new BrowserWindow({width: 800, height: 600});  win.loadURL(`file://${__dirname}/index.html`);  // 打开窗口的调试工具  win.webContents.openDevTools();  // 窗口关闭的监听  win.on('closed', () => {    win = null;  });}app.on('ready', createWindow);app.on('window-all-closed', () => {  if (process.platform !== 'darwin') {    app.quit();  }});app.on('activate', () => {  if (win === null) {    createWindow();  }});

   package.json:

{  "name": "hello_world",  "version": "0.01",  "main": "main.js",  "scripts": {    "start": "electron .",    "package":"electron-packager ./ hello_world --win --arch=x64 --version 0.0.1"  }}

 至此完成了一个基本的electron应用。运行代码前需要安装electron-prubuilt包。

 

electron-prubuilt安装问题

    electron-prubuilt包可以通过 npm install --saved-dev electron-prebuilt 进行安装,安装完成后运行electron .  就可以看到electron应用的效果,也可以如上节packgae.json中设置script运行。

    但是安装electron 包在windows下经常会出现安装失败的情况(貌似nw也会,一开始我以为是网速问题,当然网速也是问题),原因是在下载electron-prebuilt中失败,最后导致安装electron失败。解决的办法是访问手动下载当前系统对应版本的electron。版本号可以在安装过程中看到。然后将下载的electron-prebuilt压缩包放在C:\Users\Administrator\.electron下,最后在项目目录下重新执行npm install --saved-dev electron-prebuilt 进行安装,就能安装成功。

electron桌面应用打包

    全局安装Node.js模块electron-package 。运行命令:

electron-packager 
--platform=
--arch=
--version=
[optional flags...]

    sourcedir:项目路径

    appname: 应用名称

    platform: 构建哪个平台的应用,有四个值darwinlinuxmaswin32

    arch: 决定使用x86还是x64的架构还是都用,有两个值ia32x64

    version: electron的版本

    optiona:其他可选项

    注意,打包参数里应该写上overwrite, 不然后面打包时不会重新构建。

    

    

转载于:https://my.oschina.net/twleo2016/blog/997745

你可能感兴趣的文章
git指南
查看>>
SQL-Delete Duplicate Emails
查看>>
前端页面与Nodejs使用websocket通信
查看>>
BeanUtils组件的使用
查看>>
js添加菜单栏之后停留在那里
查看>>
iOS NSLog各种打印
查看>>
硬盘知识总结和一块硬盘在正式使用前,需要经历的3个步骤
查看>>
SQL - 语法收集
查看>>
PHP echo() 函数
查看>>
Arrays.sort学习(jdk7)
查看>>
Fragment的使用
查看>>
快速排序
查看>>
程序员面试题100题第09题——查找链表中倒数第K个结点
查看>>
132. Palindrome Partitioning II
查看>>
WCF批量打开服务
查看>>
Python脚本运行出现语法错误:IndentationError:unexpected indent
查看>>
ios开发--KVO浅析
查看>>
【Android】6.3 ProgressDialog
查看>>
Ecshop删除no_license点击查看 云登陆失败,您未有license
查看>>
ecshop模板标签的预定义变量
查看>>