将网站打包成桌面程序并生成安装包(跨平台)

news/2024/5/9 16:32:10/文章来源:https://blog.csdn.net/XiaoChen10086/article/details/127965458

一、Nativefier将网站打包成桌面程序

介绍

Nativefier 是一个命令行工具,仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序,应用程序通过 Electron打包成系统可执行文件(.app .exe等), 对应的可执行文件分别可在 Windows、macOS 和 Linux 上使用,是一个非常赞的开源项目

安装

全局安装本机。要求:npm install -g nativefier

  • macOS 10.10+ / Windows / Linux
  • node. js≥ 12.9 和 npm ≥ 6.9

用法

要创建 baidu.com 应用程序

nativefier "https://baidu.com"

可通过--name指定自定义程序名称, --icon 指定程序logo,--file-download-options指定下载参数(下方参数为另存为)
注意: Windows下使用命令不要用单引号

nativefier --name baidu --file-download-options "{\"saveAs\": true}" "https://baidu.com" --icon favicon.ico

其他参数及配置可以官方 API 文档或运行本机 --help以了解命令行标志并配置应用。

二、使用 Qt Installer Framework 生成安装包

Qt 安装程序框架提供了一组工具和实用程序,可以创建安装程序一次,并在所有支持的桌面 Qt 平台上部署它们,而无需重写源代码。安装程序将在运行它们的平台上具有本机外观和感觉:Linux,Microsoft Windows 和 macOS。

Qt 安装程序框架工具生成安装程序,其中包含一组页面,在安装,更新或卸载过程中指导用户。您可以提供可安装的内容并指定有关它的信息,例如产品和安装程序的名称以及许可协议的文本。

您可以通过向预定义页面添加小部件或添加整个页面来自定义安装程序,以便为用户提供其他选项。您可以创建脚本以向安装程序添加操作。

选择安装程序类型

您可以为最终用户提供离线和在线安装程序两种类型,具体取决于您的使用案例。

两个安装程序都会安装一个维护工具,该工具以后可用于添加、更新和删除组件。脱机安装程序包含所有可安装的组件,并且在安装过程中不需要网络连接。联机安装程序仅安装维护工具,然后从 Web 服务器上的联机存储库下载并安装组件。因此,联机安装程序二进制文件的大小较小,其下载时间比脱机安装程序二进制文件短。如果最终用户未安装所有可用组件,则下载和运行联机安装程序所花费的总时间也可能短于下载和运行脱机安装程序。

最终用户可以使用维护工具在初始安装后从服务器安装其他组件,并在更新发布到服务器上后立即接收内容的自动更新。但是,仅当您在脱机安装程序配置中指定存储库地址或最终用户在维护工具设置中自行指定存储库地址时,这才适用于脱机安装。

创建脱机安装程序,使用户能够直接将安装包下载到媒体上,以便以后在计算机上安装。例如,您还可以将安装包分发到 CD-ROM 或 U 盘上。

创建联机安装程序,使用户能够始终安装最新版本的内容二进制文件。

使联机存储库可用,以便向安装产品的最终用户推广更新。提供更新的最简单方法是重新创建存储库并将其上载到 Web 服务器。对于大型存储库,您只能更新已更改的组件。

为安装程序提供内容

您可以允许其他内容提供程序将组件作为附加组件添加到安装程序。组件提供程序必须设置包含可安装组件的存储库,并将指向存储库的 URL 传递给最终用户。然后,最终用户必须在安装程序中配置 URL。附加组件在包管理器中可见。

如何为小型项目创建简单的安装程序:

本节介绍创建安装程序必须完成的以下任务:

  1. 创建一个包含所有配置文件和可安装包的_包目录_。

  2. 创建一个_配置文件_,其中包含有关如何构建安装程序二进制文件和联机存储库的信息。

  3. 创建一个_包信息文件_,其中包含有关可安装组件的信息。

  4. 创建安装程序内容并将其复制到包目录。

  5. 使用该工具创建_安装程序_。binarycreator

    安装程序页面是使用您在配置和包信息文件中提供的信息创建的。

示例文件位于 Qt 安装程序框架存储库的目录中。examples\tutorial

创建包目录

创建一个目录结构,该结构反映安装程序的设计,并允许将来扩展安装程序。该目录必须包含调用的子目录。config``packages

有关包目录的详细信息,请参阅包目录。

创建配置文件

在目录中,创建一个调用的文件,其中包含以下内容:config``config.xml

<?xml version="1.0" encoding="UTF-8"?>
<Installer><Name>Your application</Name><Version>1.0.0</Version><Title>Your application Installer</Title><Publisher>Your vendor</Publisher><StartMenuDir>Super App</StartMenuDir><TargetDir>@HomeDir@/InstallationDirectory</TargetDir>
</Installer>

配置文件指定在简介页上显示的以下信息:

  • <Title>标签指定标题栏(1)上显示的安装程序名称
  • <Name>标签指定添加到页面名称和简介文本 (2) 中的应用程序名称。

其他标签用于自定义安装程序的行为:

  • <Version>标签指定应用程序版本号
  • <Publisher>标签指定软件的发布者(例如,如 Windows 控制面板中所示)
  • <StartMenuDir>标签指定 Windows “开始” 菜单中产品的默认程序组的名称
  • <TargetDir> 标签指定向用户显示的默认目标目录位于当前用户的主目录中(因为预定义变量用作值的一部分)。有关更多信息,请参阅预定义变量

有关配置文件格式和可用元素的详细信息,请参阅配置文件

创建包信息文件

在此方案中,安装程序只处理一个被调用的组件。要向安装程序提供有关组件的信息,请创建一个包含以下内容的文件 package.xml,并将其放在目录:com.vendor.product/meta

<?xml version="1.0" encoding="UTF-8"?>
<Package><DisplayName>The root component</DisplayName><Description>Install this example.</Description><Version>0.1.0-1</Version><ReleaseDate>2010-09-21</ReleaseDate><Licenses><License/></Licenses><Default>script</Default><Script>installscript.qs</Script><UserInterfaces><UserInterface>page.ui</UserInterface></UserInterfaces>
</Package>

下面将更详细地介绍示例文件中的元素。

有关package.xml信息文件的详细信息,请参阅包信息文件语法。

指定组件信息

来自以下元素的信息显示在组件选择页面上:

  • <DisplayName>标签指定组件列表(1)中组件的名称。
  • <Description>标签指定选择组件时显示的文本(2)

指定安装程序版本

<Version>标签使您能够在更新可用时向用户提供更新

添加许可证

<License>标签指定许可证检查页面上显示的许可协议(1)文本的文件的名称:

选择默认内容

<Default>script</Default>标签指定默认情况下是否选择组件。该值将组件设置为选定组件。在此示例中,脚本文件的名称 installscript.qs 在<Script>标签中进行指定,默认在mate目录下

installscript.qs(Windows通过该脚本创建桌面快捷方式)

function Component()
{// default constructor
}Component.prototype.createOperations = function()
{// call default implementation to actually install README.txt!component.createOperations();if (systemInfo.productType === "windows") {component.addOperation("CreateShortcut", "@TargetDir@/README.txt", "@StartMenuDir@/README.lnk","workingDirectory=@TargetDir@", "iconPath=%SystemRoot%/system32/SHELL32.dll","iconId=2", "description=Open README file");component.addOperation("CreateShortcut", "@TargetDir@/image-center/manage.exe", "@DesktopDir@/快捷方式名字.lnk");}
}

创建安装程序内容


要安装的内容存储在组件的目录中。由于只有一个组件,因此将数据放在目录中。该示例已经包含一个用于测试目的的文件,但您基本上可以将任何文件放在目录packages/com.vendor.product/data

有关打包规则和选项的详细信息,请参阅数据目录。

创建安装程序二进制文件


现在,您已准备好创建第一个安装程序。命令行上切换到qt目录下的examples\tutorial目录。若要创建名为 YourInstaller.exe 的安装程序,其中包含由 com.vendor.product 标识的程序包,请输入以下命令:

  • 在Windows上:

    ..\..\bin\binarycreator.exe -c config\config.xml -p packages YourInstaller.exe
    
  • 在 Linux 或 macOS 上:

    ../../bin/binarycreator -c config/config.xml -p packages YourInstaller
    

安装程序在当前目录中创建,您可以将其交付给最终用户。

有关使用该工具的详细信息,请参阅 binarycreator

注意:如果在运行教程安装程序时显示错误消息,请检查您是否使用了静态构建的 Qt 来创建安装程序。有关更多信息,请参阅配置 Qt指定设置 创建安装程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_901416.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WSTMall网站系统最新官方版

WSTMall V1.0是在thinkphp 的经典版本3.2.2基础上进行优化开发的&#xff0c; TP 3.2.2不是thinkphp的一个最新的版本&#xff0c;却是thinkphp最金典的一个版本&#xff0c;正所谓站在巨人的肩膀上&#xff0c;WSTMall V1.0继承了thinkphp大道致简的理念&#xff0c;继承了thi…

天涯孤岸软件商城-.net电子商务网站系统案例

Asp.net 电子商务商城 开发技术项目案例 ASP.NET是作为.NET框架体系结构的一部分推出的。2000年ASP.NET 1.0正式发布&#xff0c;2003年ASP.NET升级为1.1版本。ASP.NET 1.1发布之后更加激发了Web应用程序开发人员对ASP.NET的兴趣。于是在2005年11月微软公司又发布了ASP.NET 2.…

使用Java开发高性能网站(二)

数据存取 数据库服务器的优化和数据的存取&#xff0c;什么类型的数据放在什么地方更好是值得去思考的问题&#xff0c;将来的存储很可能是混用的&#xff0c;Cache&#xff0c;NOSQL&#xff0c;DFS&#xff0c;DataBase在一个系统上都会有&#xff0c;生活的餐具和平日里穿的…

html/css 个人网站实例(一)

显示效果 HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>alalasheep的个人网站</titl…

兼容性网站导航主菜单--Head

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"en"> <head> <title>兼容性超强的…

18 个锻炼编程技能的网站

编程几乎已经成为了人类所知每个行业的必要组成部分&#xff0c;它帮助组织和维护大型系统的方式是无可比拟的&#xff0c;所以越来越多的人开始了他们的编程之旅。 要学习编程&#xff0c;你可以通过交互式平台或者书本&#xff0c;随便一种你觉得最适合和容易的学习方式。但是…

Chrome“无法添加来自此网站的应用”的解决办法

晚上在Win8系统下在给Chrome添加插件时突然提示“无法添加来自此网站的应用、扩展程序和应用脚本”&#xff0c;这果断让我很诧异~之前用的都是Win7系统的Chrome 24.0&#xff0c;添加插件的方法也很简单&#xff0c;就是直接将下载好的Chrome应用*.crx文件拖到扩展程序界面&am…

监控网站与接口宕机,并推送 App 消息提醒的程序

监控网站与接口宕机&#xff0c;并推送 App 消息提醒的程序 咕咕监控&#xff0c;专注于网站、数据接口与设备在线状态监控&#xff0c;统一管理您所有的网站、API 与设备&#xff0c;10ms 级别的监控频率&#xff0c;宕机时第一时间推送 App 消息、微信消息、短信、电话语音进…

我的SEO之路2013年3月5日最早的一个站突破

只看图不说话。 送大家一句话 坚持才是SEO的神

我的SEO之路2013年3月18日关于个人博客关键字排名30

这两天更新博客有点频繁哈。 今天又来记录一下自己15号提到的博客。 说之前先给大家看个图 这是今天刚刚查询的。 做百度SEO注重的是规律&#xff0c;更新频率&#xff0c;现在我在做个测试等测试结果出来后 会和大家一起分享一下的。 我的站是2月26日建立的&#xff0c;今…

手把手教你如何创建 ASP.NET Dynamic Data 实体网站

从四月份开始接触web开发&#xff0c;至今已经有一段时间了。之前一直忙于在做项目&#xff0c;每天加班加点&#xff0c;包括周末。现在项目总算上线了&#xff0c;有了点喘息的机会&#xff0c;回过头看&#xff0c;其实我对后端的东西懂得其实还很少&#xff0c;于是决定自己…

浏览器访问网站的流程

浏览器访问网站的过程 浏览器访问百度的过程是怎样的 &#xff1f;自我理解如下图 访问流程 A电脑首先发送DNS数据&#xff0c;进行解析www.baidu.com对应的IP地址B收到了来自A电脑的DNS请求&#xff0c;解析出www.baidu.com对应的IP地址返回给A电脑A电脑就会向这个地址进行TC…

KNN实战——约会网站配对效果判定

一 约会网站配对效果判定 上一小结学习了简单的k-近邻算法的实现方法&#xff0c;但是这并不是完整的k-近邻算法流程&#xff0c;k-近邻算法的一般流程&#xff1a; 收集数据&#xff1a;可以使用爬虫进行数据的收集&#xff0c;也可以使用第三方提供的免费或收费的数据。一般…

PHp网站建设,期末大作业-海贼王主题【包含前后台】

欢迎前往我的github上下载 连接如下 https://github.com/fighting-dog/phpstudy-haizeiwanghttps://github.com/fighting-dog/phpstudy-haizeiwang

做网站,虚拟主机与云服务器之间,我们应该如何选择?

虚拟主机已经有了一段时间的历史&#xff0c;近几年随着其技术的不断成熟&#xff0c;以及其低廉的价格&#xff0c;成为众多站长的首选对象。但近两年云计算的出现&#xff0c;衍生出云服务器这个产物。这时&#xff0c;很多站长便对虚拟主机与云服务器应该如何选择感到困扰&a…

SEO案例:锚文本、关键字、nofollow、Web标准化(一)(转)

前面谈到了做SEO需要注意的好几个因素。但是因为工作上的原因&#xff0c;好多因素没有讲透的。&#xff08;不过其实有些东西我给我们团队的人都没有讲过的。&#xff09;我看到一些人的回复&#xff0c;对有些SEO因素有误解。 还有&#xff0c;我看到很多人都没怎么关注“Web…

OpenSocial:构建跨多个网站的社交应用程序

OpenSocial为构建跨多个网站的社交应用程序提供了一组通用 API。开发人员可以使用标准 JavaScript. 和 HTML 创建应用程序&#xff0c;用以访问社交网络里的朋友并更新对应的Feeds。这个论坛为各位OpenSocial开发人员提供了一个平台&#xff0c;大家可以在上面提问&#xff0c;…

Linux系统部署网站

Linux系统部署网站 准备环境 Linux服务器域名&#xff08;非必须&#xff09;安装并启动MySQL数据库服务安装Node.js环境 部署网站 先找一个我参与的前后端分离项目 学生宿舍管理系统 在服务器的MySQL里创建一个dormitories数据库&#xff0c;把sql目录里的dormitories.s…

考研——考研有用的“宝贝”(软件,公众号,网站,励志电影,音乐)

软件 考研学习类&#xff1a; 哔哩哔哩-B站&#xff08;必下&#xff09; 看学习视频建议在电脑或平板上&#xff0c;不会有人考研不用B站吧&#xff0c;不会吧&#xff0c;不会吧 中国大学慕课MOOC 中国教育惠民软件&#xff0c;很多专业课都可以搜到&#xff0c;关键都是…