zoukankan      html  css  js  c++  java
  • electron 使用(一)

    一、概念

      1、Electron 可以让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。可以看做是被 JavaScript 控制的,精简版的 Chromium 浏览器。

      2、Electron分为主进程和渲染进程,主进程是main.js,使用 BrowserWindow 实例创建网页,每个页面都运行着自己的进程,即渲染进程相互独立。

    二、新建Electron项目

      1、安装 node npm  

      2、初始化一个项目 npm init 或  npm init -f  (-f 表示会使用默认值,不用输入,生成package.json)

      3、将package.json 文件中 "main" : "index.js"  改为  "main" :  "main.js"

      4、下载 electron : npm install electron --save

      5、根目录下新建 main.js 

    const electron = require('electron')
    const path = require("path")
    const url = require('url')
     
    const { app,BrowserWindow,globalShortcut} = require('electron')
     
    let mainWindow
     
    function createWindow () {
      // Create the browser window.
      mainWindow = new BrowserWindow({ 800, height: 600})
     
      // and load the index.html of the app.
      mainWindow.loadURL(url.format({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file:',
        slashes: true
      }))
     
      // Open the DevTools.
      // mainWindow.webContents.openDevTools()
     
      // Emitted when the window is closed.
      mainWindow.on('closed', function () {
        // Dereference the window object, usually you would store windows
        // in an array if your app supports multi windows, this is the time
        // when you should delete the corresponding element.
        mainWindow = null
      })
    }
     
    // This method will be called when Electron has finished
    // initialization and is ready to create browser windows.
    // Some APIs can only be used after this event occurs.
    app.on('ready', createWindow)
     
    // Quit when all windows are closed.
    app.on('window-all-closed', function () {
      // On OS X 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', function () {
      // On OS X it's common to re-create a window in the app when the
      // dock icon is clicked and there are no other windows open.
      if (mainWindow === null) {
        createWindow()
      }
    })

      6、在 package.json 文件中的scripts 下面加入:"start": "electron ."

      7、执行  npm start

    三、项目打包

      1、下载  npm install --save-dev electron-package   或者 使用 electron-builder  进行打包

      2、在 package.json 文件中的 scripts 下添加如下代码:

    os:"packageDarwin": "electron-packager . 'Hosts' --platform=darwin --arch=x64 --icon=hosts.icns --out=./dist --asar --app-version=2.0.1 --ignore="(dist|src|docs|.gitignore|LICENSE|README.md|webpack.config*|node_modules)"",
    
    os:"packageDarwin": "electron-packager . 'Hosts' --platform=darwin --arch=x64 --icon=hosts.icns --out=./dist --asar --app-version=2.0.1",
    
    
    windows:"packageWin": "electron-packager . 'Hosts' --platform=win32 --arch=x64 --icon=hosts.ico --out=./dist --asar --app-version=2.0.1 --ignore="(dist|src|docs|.gitignore|LICENSE|README.md|webpack.config.js|node_modules)"",
    
    windows:"packageWin": "electron-packager . 'Hosts' --platform=win32 --arch=x64 --icon=hosts.ico --out=./dist --asar --app-version=2.0.1",
    
    
    linux:"packageLinux": "electron-packager . 'Hosts' --platform=linux --arch=x64 --out=./dist --asar --app-version=2.0.1 --ignore="(dist|src|docs|.gitignore|LICENSE|README.md|webpack.config.js|node_modules)""
    
    linux:"packageLinux": "electron-packager . 'Hosts' --platform=linux --arch=x64 --out=./dist --asar --app-version=2.0.1"

    命令说明: 
    * location of project:项目所在路径 
    * name of project:打包的项目名字 
    * platform:确定了你要构建哪个平台的应用(Windows、Mac 还是 Linux) 
    * architecture:决定了使用 x86 还是 x64 还是两个架构都用 
    * electron version:electron-prebuilt 的版本 
    * optional options:可选选项

    PS:这里要注意,字段里的 项目名字,version,icon路径要改成自己的; 例如:"packager": "electron-packager ~/Desktop/myFirstElectronApp(项目位置) Hello(项目名称) --linux --out ./OutApp(项目导出位置) --version 1.4.13 --overwrite"

    Mac系统:

    "packageDarwin""electron-packager . 'Hosts' --platform=darwin --arch=x64  --out=./dist --asar --app-version=2.0.1 --ignore="(dist|src|docs|.gitignore|LICENSE|README.md|webpack.config*|node_modules)""

      3、打包命令:npm run-script package

    三、Electron

      1、大体目录:

        ├── package.json

        ├── main.js

        └── index.html

      2、package.json

    {
      "name"    : "your-app",
      "version" : "0.1.0",
      "main"    : "main.js"
    }

      3、main.js  用于创建窗口和处理系统时间

    var app = require('app');  // 控制应用生命周期的模块。
    var BrowserWindow = require('browser-window');  // 创建原生浏览器窗口的模块
    
    // 保持一个对于 window 对象的全局引用,不然,当 JavaScript 被 GC,
    // window 会被自动地关闭
    var mainWindow = null;
    
    // 当所有窗口被关闭了,退出。
    app.on('window-all-closed', function() {
      // 在 OS X 上,通常用户在明确地按下 Cmd + Q 之前
      // 应用会保持活动状态
      if (process.platform != 'darwin') {
        app.quit();
      }
    });
    
    // 当 Electron 完成了初始化并且准备创建浏览器窗口的时候
    // 这个方法就被调用
    app.on('ready', function() {
      // 创建浏览器窗口。
      mainWindow = new BrowserWindow({ 800, height: 600});
    
      // 加载应用的 index.html
      mainWindow.loadURL('file://' + __dirname + '/index.html');
    
      // 打开开发工具
      mainWindow.openDevTools();
    
      // 当 window 被关闭,这个事件会被发出
      mainWindow.on('closed', function() {
        // 取消引用 window 对象,如果你的应用支持多窗口的话,
        // 通常会把多个 window 对象存放在一个数组里面,
        // 但这次不是。
        mainWindow = null;
      });
    });
  • 相关阅读:
    Swift 扩展
    Swift 类型转换
    Swift 自动引用计数(ARC)
    Swift 可选链
    Swift 析构过程
    Swift 构造过程
    Swift 继承
    Swift 下标脚本
    Swift 方法
    Swift 属性
  • 原文地址:https://www.cnblogs.com/zhou-xm/p/13042600.html
Copyright © 2011-2022 走看看