nsNiuniuSkin更多UI模板,倾情奉献!
在早期的nsNiuniuSkin的示例中,我们只提供了两种UI模板,经常有朋友反馈,能不能多提供几种UI模板,当前的这个模板通用性不够,不好改!
诚然,之前的两套UI模板确实也有些年代久远了,在经过深思熟虑后,我们决定为大家提供几套功能更完善的,UI更精美,同时通用性更强的UI模板,让您通过简单替换几个文件及文字即可完成安装包的制作;为此,我们升级了nsNiuniuSkin的内核,同时融入了一些新的特性。
新版本功能特点如下:
1. 兼容老版本的控件
2. 新增支持DPI放大功能
3. 新增支持静默安装功能
4. 新增支持自动覆盖升级功能,命令行控制安装路径
5. 新增支持HTTP请求能力,方便在安装过程中进行验证和行为上报
6. 新增下载文件的接口,用于制作在线升级包
7. 新增Slider控件的forcolor2属性,非常方便的实现色彩变化的进度条
8. 规范化xml文件及nsis脚本的编写方法,更易读易懂易改
经过1个多月的打磨,反复权衡,终于最终敲定了几套UI模板,希望能够帮助广大的安装包制作者,在更短的时间内完成安装包的制作。
几种模板,从总体来讲,都是比较简洁的,通过简单替换几个LOGO文件,替换一下产品名称,即可瞬间变成您的专属安装包。
使用新版本的UI模板,您需要几个步骤即可完成您的安装包制作:
1. 替换LOGO图片
2. 替换nsi文件中的产品名称、公司名称等
3. 替换licence文件
4. 根据bat脚本的规则,将要安装的文件复制到FilesToInstall,然后启动bat制作安装包即可
更多实用新功能
在新版本中,我们提供了诸如DPI放大支持、在线安装、静默安装、自动升级、HTTP请求能力等等功能,均是在企业产品实际应用中将会需要用到的。
DPI放大
显示器分辨率越来越高,为了便于使用,大部分用户都会选择高的分辨率,同时设置DPI放大,在这种场景下,如果安装包不能跟随放大显示,则会显示成一个很小的窗口,非常影响美观。
nsNiuniuSkin内置了支持DPI放大的能力,会自动将原来控件的尺寸字号等使用放大后的尺寸与字号,同时会根据DPI放大的比例,使用对应比例的图片,确保在不同的DPI放大下,都有最好的显示效果。
目前我们支持1倍图和2倍图,如果DPI放大是在2倍以下,我们按不放大处理;如果是2倍或以上,则我们按2倍显示。
使用中需要两处调整:
1) 在控件引擎初始化后,立即进行DPI放大的支持设置(如在DUIPage函数中):nsNiuniuSkin::EnableDpi
2) 在skin下的图片资源中,对每一个图片,增加其2倍图,如:
1倍图:test.png
2倍图:test@2x.png
在线安装
在一些安装场景中,由于完整的安装包很大,下载时间长,且下载后需要人工干预来进行安装,这样会一定程度的降低用户使用体验;nsNiuniuSkin提供了一种精简版本的安装包,支持在线下载安装文件,自动进行安装的功能。
在线安装的脚本与完整安装的脚本是同一套,区别在于编译时指定了宏:INSTALL_DOWNLOAD_7Z(通过bat脚本动态的传入,无需修改脚本),当这个宏被定义时,安装过程中间插入了下载的过程,下载过程中,我们将显示安装文件总大小,文件下载速度,下载完成百分比等信息,通过进度条来体现下载进度;同时在下载安装后,对下载的文件进行解压,并提供安装进度,无缝的衔接好下载与安装的两个流程。
1. 支持条件
由于在线安装文件的下载可能因为种种原因出现错误,所以我们会在下载完成后,对文件的md5以及大小进行校验;在安装的下载过程中,我们分成了如下几步:
1) 下载config.ini
2) 根据config.ini中指定的文件名称进行文件下载,并实时的显示进度
3) 下载到文件后,取文件大小以及md5值,与配置文件中的值进行校验,如果不正确,则报错;如果正确,再进一步对文件进行解压安装
2. 在实际使用中,需要做如下几件事情:
1) 对需要在线安装的文件及列表进行7z压缩(一般是需要放到FilesToInstall目录下的列表),命名为app.7z
2) 将app.7z上传到http服务器上的指定目录,如:test_online_install
3) 取文件的md5值和大小,写入服务器上test_online_install目录下的config.ini文件中,如:
[set]
md5=e3e718669b80a484ce06de00adf52e95
size=5157529
filename=app.7z
4) 在nsi文件中修改宏INSTALL_DOWNLOAD_BASEURL,输入服务器上test_online_install目录对应的http请求路径
5) 执行build-xxx-online.bat 生成在线安装包的安装程序
当启动在线安装程序时,它先下载app.7z,校验后解压来对在线安装数据进行安装。
在线安装过程效果如下:
自动升级
现在基本所有软件都有升级检测功能,当在主程序中检测到新版本后,一般会在主程序中将升级包下载下来,然后调用升级包,对原有的程序进行升级,同时将新的主程序拉起。
在这样的使用背景下,安装包需要具备能够通过命令行自动传入安装路径,自动开始安装,完成后,自动打开主程序等能力,nsNiuniuSkin不仅仅是一套安装包UI,更是一整套安装包的解决方案,对此,我们已经提供了能力支撑,只需要在启动安装包时,传入指定的命令行参数即可:
Setup.exe -AutoInstall=1 -AutoOpen=1 -fakecmd=1 /D=E:\Software\Test\
如此,便指定了安装路径,同时自动安装,完成后,自动打开主程序,特别需要注意的是
-fakecmd,这个参数并无实际意义,主要用于占位,否则在安装包中解析前面的一个参数会失败。
注:
这种安装模式是在运行时通过命令行参数决定的,升级包与原始安装包是同一个包,通过命令行参数控制其不同的行为。
自动升级安装过程交易展示如下:
静默安装
在一些特殊的场景中,需要将一个安装包嵌入到其他的安装包中,在安装时,不需要用户干预,在后台自动安装,期间不要有任何的UI显示;nsNiuniuSkin也提供了这样的能力,按下面的方式启动即可:
Setup.exe /S
当然,如果需要在安装完成后,自动打开主程序,或者指定安装路径,也可以在参数中指定:
Setup.exe -AutoOpen=1 -fakecmd=1 /S /D=E:\Software\Test\
安装包启动过程请见上述gif动画
HTTP请求能力
在安装包安装过程中,往往还伴随着安装行为的上报,以便于后台能够统计到有多少用户安装了我们的软件;同时也会有在安装过程中需要进行在线认证的场景,比如在线验证授权码等。
nsNiuniuSkin提供了便捷的http请求接口,同时支持同步调用和异步调用,方便在不同的场景使用,调用示例如下:
同步调用示例:
Function TestSyncHttpRequest
nsNiuniuSkin::HttpInvoke "http://www.ggniu.cn/test/test.html" "" "" 0
pop $R0
pop $R1
MessageBox MB_OK|MB_ICONINFORMATION "retval: $R0, retstr: $R1"
FunctionEnd
GetFunctionAddress $0 TestSyncHttpRequest
BgWorker::CallAndWait
异步调用示例:
nsNiuniuSkin::HttpInvoke "http://www.ggniu.cn/test/test.html" "" "" 1
以下是几种UI模板效果图:
极简版1
极简版2
极简版3
通用版
高阶版1
高阶版2
是否很简单呢,更多模板,请 点此查看
更多产品详细信息,请 点此查看
在安装包制作中,UI好看非常重要,但并不是说只有好看的UI就够了。通过NSIS脚本控制软件的安装、升级、卸载等行为才是安装包的精髓所在;要想制作出功能强大的安装包,还需要对NSIS脚本有比较深入的理解。nsNiuniuSkin已经完成了安装包制作中95%以上的工作,您只需要关注特定的需求,避免重复劳动。
下载地址
示例程序包及说明文档,请于如下地址下载:
更多UI模板>>
nsNiuniuSkin下载
更多信息,请访问:
http://www.leeqia.com/