一招解决BS转CS模式:浏览终端开发-Electron集成打包、本地配置文件及自动更新

 

   将普通的网页转换为桌面应用并兼容现在的H5,基本的思路都是打包封装谷歌公司的开源版Chromium 使其充当与本地应用通讯的媒介;

   成本比较低的是electron  CefShap(C#)  至于blink /cef/ wke 等 如果专业做浏览器开发可以尝试涉猎(360浏览器内核是blink);

第一步:创建项目

npm install -g electron-forge

electron-forge init xxx-terminal

 

第二步:设置图标

 

  通过PS制作ico图标

 需要安装插件icoformat

 添加打包组件

yarn add electron-builder

  添加配置

 

"build": {
    "appId": "com.xy.his",
    "win": {
      "icon": "build/icons/icon.ico"
    },
}

 

 

第三步:设置本地配置文件

        为了灵活设置浏览终端信息,可以将一些放入到一个本地文件中如更新服务器地址,是否打开开发者工具,浏览地址等        

var fs = require('fs');
  // 开发时读取data目录 打包时读resources/data目录
  let readText = fs.readFileSync("./resources/data/config.json");
  let data = JSON.parse(readText);
  return data;

这里要注意的是目录,打包后config.json文件不会跟随文件压缩过去需要指定配置,但配置后运行的目录会在resources下

package.json

"build": {
    ...
    "extraResources": [
      {
        "from": "./data",
        "to": "data"
      }
    ]
}

 

 

第四步:自动更新及服务端搭建

electron-builder electron-packager 都可以打包 但electron-builder 支持自动更新并且配置更加强大。这里electron-updater实现自动更新程序;
nsis配置安装程序

  配置:

"appId": "com.xy.his",
    "win": {
      "icon": "build/icons/icon.ico"
    },
    "publish": [
      {
        "provider": "generic",
        "url": "http://192.168.3.145"
      }
    ],

 

服务端试用本地nginx

 只要生成的latest.yml 文件中 version: 1.0.1版本号大于安装版会自动触发更新

 程序示例下载 https://download.csdn.net/download/ucicno000/13206890

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使 Electron 应用自动更新,可以使用 electron-updater 模块。这个模块是 Electron 提供的一个官方模块,可以用来实现自动更新功能。 以下是实现自动更新的步骤: 1. 在你的应用程序中添加 electron-updater 模块。 ```javascript npm install --save electron-updater ``` 2. 在主进程中设置自动更新的配置。 ```javascript const { app, autoUpdater } = require('electron'); const server = 'https://your-deployment-url.com'; // 更新服务器地址 const feed = `${server}/update/${process.platform}/${app.getVersion()}`; autoUpdater.setFeedURL(feed); autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName) => { // 收到更新下载完成的事件,需要用户确认安装 const dialogOpts = { type: 'info', buttons: ['安装', '稍后'], title: '应用有新的更新', message: process.platform === 'win32' ? releaseNotes : releaseName, detail: '安装后将重启应用程序' }; dialog.showMessageBox(dialogOpts).then((returnValue) => { if (returnValue.response === 0) { // 确认安装 setImmediate(() => autoUpdater.quitAndInstall()); } }); }); // 检查更新 app.on('ready', () => { autoUpdater.checkForUpdates(); }); ``` 3. 在打包应用时添加自动更新的配置。 在 package.json 文件中添加以下内容: ```json "build": { "publish": [ { "provider": "generic", "url": "https://your-deployment-url.com/update/" } ] } ``` 这里的 `url` 指向包含更新文件的服务器地址,`provider` 的值可以是 `generic`,也可以是其他选项(如 `github`、`s3` 等)。 4. 生成更新文件并上传到服务器。 最后,你需要在你的服务器上生成更新文件,并将其上传到指定的地址。更新文件可以是 `.dmg`、`.exe` 等格式的安装文件,也可以是 `.zip`、`.tar.gz` 等格式的压缩包。 上传更新文件时需要按照以下格式命名: - `appName-版本号-darwin-x64.dmg`(Mac OS X 版本) - `appName-版本号-win32-ia32.exe`(Windows 32 位版本) - `appName-版本号-win32-x64.exe`(Windows 64 位版本) 注意,这里的 `appName` 需要和你的应用程序名称一致,版本号需要和 `package.json` 文件中的版本号一致。 这样,当用户打开应用程序时,它将自动检查更新,并在更新可用时提示用户下载和安装更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值