这个是关于NW打包的第二篇博客,第一篇主要讲NW基本用法&打包,此篇主要讲的是后续一些优化的功能.包括NW文件整体打包成一个exe在生产环境直接安装,自定义exe图标 快捷方式图标等;这些功能都需要额外的工具软件支持,用到的是ResourceHacker Inno Setup这两个软件0.44.1 SDK&PRODUCT&软件 下载…

1.RH自定义exe图标

(1)下载安装ResourceHacker后打开软件,依次执行 file-> open -> 选择对应app.exe存放目录并选中生成的exe文件,右击Icon Group IDR_MAINFRAME,在弹出的菜单中选择replace icon -> open file… -> 选择自定义的ico格式的图标

(2)再次打开,可以查看图标已经修改成功了;需要注意的是,在文件夹中exe的标注有时候没有改变,这个主要是因为缓存的问题;个人刷新了几次,还是没有变化,这个以RH为准就可以(不影响后续Inno Setup编译,RH查看exe图标改变了即可),多等一下让子弹飞一会儿或者重启一下;这个也是一个问题,没有找到好的办法,有知道的大佬可以指正一下;好了,第一个问题处理好了,继续下一步

2.集成打包

(1)下载安装Inno Setup后打开软件,依次执行file -> new->next(个人没有勾选 创建一个新的JS文件),弹窗如下,可以输入打包后应用的一些信息

(2)点击next同理选填一些exe的信息,不赘述

(3)点击next,进入如下

1)选择在nw中生成的app.exe路径,地址会自动填充到输入框中
2)添加app.exe运行依赖的文件,也就是nw SDK文件夹中的所有文件;选择添加文件夹,直接选中解压的nw SDK文件夹;框选处的 * 表示的就是该文件夹下的全部文件;

(3)next下一步,可以选择是否创建快捷方式等配置,默认勾选

(4)next下一步,根据项目需求,自行配置,是否有一些证书配置,不赘述

(5)next下一步

(6)选择exe语言,根据项目需求,自行配置

(7)next,选择打包后输出目录 名称 快捷方式图标以及安装密码,

(8)next -> finish,选择保存的打包文档iss文件地址即可,打包结束;双击打包输出文件夹中的exe安装即可

注意

1.项目中要保持英文命名规范,不能有中文命名的文件.即使没有引用也不可以,否则安装后进入应用后只会显示NW的界面,奇葩的是SDK调试并不会校验这个问题,这个坑我排查了将近一天,最后发现是有一个没有引用的中文命名的图片.
2.引用H5 video音频按钮式灰色的,无法开启;这个因为ffmpeg.dll音频文件的问题,github下载 ffmpeg.dll.在NW项目中替换即可(不再赘述,github讲的很清楚)
3.项目中的console.warn/error,在发布生产版本时一定要删掉,可能会被安全系统/防火墙/杀毒软件识别有病毒,导致安装失败

自动全屏 F11全屏 ESC退出全屏

  1. 自动全屏,在app文件夹中的package.json中配置 fullscreen:true即可
  2. F11全屏 ESC退出全屏 主要参考的NW文档,定义其快捷方式功能,比较简单不再赘述.个人的做法是,将下面的代码作为一个JS脚本直接在HTML引用
nw.App.registerGlobalHotKey(new nw.Shortcut({key: "Escape",active: function() {nw.Window.get().leaveFullscreen();}}));nw.App.registerGlobalHotKey(new nw.Shortcut({key: "F11",active: function() {nw.Window.get().enterFullscreen();}}));

补充

在第二步集成打包会生成一个iss文件,此文件记录了整个编译过程;如应用名称、版本、输出目录等一切操作;所以在只更新代码的情况下,直接导入iss文件避免了重复打包操作;
打开Inno Setup,File -> Open -> 选择iss文件,点击运行按钮即可

NW集成打包 自定义图标及注意事项相关推荐

  1. 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)

    我们编写的程序可以发给其他小伙伴使用,但是其他小伙伴不一定安装有python.这时候就需要用到打包啦.打包可以将程序打包成exe文件.然后小伙伴在windows平台里就可以运行(无需python).直 ...

  2. lvgl显示中文和自定义图标

    lvgl显示中文和自定义图标 显示中文 制作字库 lvgl字库在线制作网址 https://lvgl.io/tools/fontconverter 下面以制作 "按钮" 这两个汉字 ...

  3. wxpyhton打包后图标背景变黑

    程序打包的时候,发现我的自定义图标全部变成黑色了变成下面这个样子了 非常无语,网上找了半天解决,好像是没有写manifest 搞了半天补上 manifest 下面是manifest代码 # -*- c ...

  4. PyInstaller 打包单文件 exe 注意事项

    PyInstaller 打包单文件 exe 注意事项 PyInstaller 打包单文件 exe 注意事项 0. 官网 1. PyInstaller 打包单文件 exe 时遇到的问题 2. 找不到 P ...

  5. Vue 使用echarts 地图自定义图标和修改图标样式,点击切换图标

    效果图:如下 注意事项: 1.使用echarts最好看官方文档,官方文档(链接如下) https://echarts.apache.org/examples/zh/index.html#chart-t ...

  6. 【安卓开发系列 -- 开发环境】Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具)

    [安卓开发系列 -- 开发环境]Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具) [1]Unbuntu ...

  7. 使用Jenkins搭建iOS/Android持续集成打包平台

    http://debugtalk.com/post/iOS-Android-Packing-with-Jenkins/ http://debugtalk.com/post/iOS-Android-Pa ...

  8. 修复 uni-icons 自定义图标无法显示的问题

    uniapp 官方文档地址:https://uniapp.dcloud.net.cn/component/uniui/uni-icons.html 在使用uni-icons自定义图标时发现,自定义的图 ...

  9. app自定义图标 vue_【分享】在uniapp的nvue和subNVue中添加本地自定义字体/字体图标的方法...

    使用uniapp做开发,时不时会遇到困难.遇到困难时,可以在Dcloud社区和QQ群提问.但Dcloud官方分配于解答开发者疑问的力量远远不足,大多数提问根本不会得到任何回复.我是个暴脾气,很多时候气 ...

  10. InstallShield 打包 自定义安装依赖环境

    InstallShield 打包 自定义安装依赖环境 InstallShield 2020 自定义集成AccessDatabaseEngine 配置依赖项 InstallShield 2020 自定义 ...

最新文章

  1. Hyper-V Server 2008系统管理实战
  2. 前端技术分享:锥形渐变conic-gradient你了解多少?
  3. R运行大数据的过程中遇到的问题:不能有负长度矢量
  4. regex 正则表达式_使用正则表达式(Regex)删除HTML标签
  5. java 根据类名示例化类_如何使用示例从Java中的类路径加载资源
  6. css3案例分析,CSS3动画/动画库以及案例分析(上)
  7. java 用户线程如何修改界面内容_java 加入一个线程、创建有响应的用户界面 。 示例代码...
  8. 固定顶部(广告栏效果)
  9. Mongodb Geo2d索引原理
  10. 判断一组checkbox中是否有被选中的
  11. 使用SMART原则快速上手一门编程语言
  12. Qt OpenGL教程 (非常详细)
  13. 用python编写鸡兔同笼问题
  14. 技术总监的日常工作,看下你具备几条
  15. MATLAB画图(一)
  16. 用于时间机器备份的文件服务器地址,一日一技 | 如何解决时间机器在 NAS 上创建备份失败的问题?...
  17. JavaScript字符串方法汇总
  18. 云计算系统运用了许多技术,最主要的核心技术是什么
  19. 速写画面如何画出生动感?眼睛和嘴巴是重要部分~
  20. 磁盘空间不足怎么办?教你重新分配磁盘空间

热门文章

  1. 中图杯获奖作品计算机组,中图杯大赛试卷
  2. HTTPS(三)之JAVA 不校验HTTPS服务器证书
  3. vscode vue代码格式化无效详细解决方案
  4. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
  5. python实现离散沃尔什变换_【图像处理】沃尔什变换与 python 实现
  6. 手把手教你用keras搭建GAN
  7. 三大方面解析虚拟化技术在云计算数据中心中的应用
  8. php+dns+缓存,清理电脑dns缓存方法
  9. 硬盘缓存作用是什么,缓存是不是越大越好?
  10. Spring boot 集成 WebService(简单使用、文件上传下载)