初始-Nativefier

--无奈只能靠自己

Nativefier 是什么:

Nativefier 是一个命令行工具,仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序,应用程序通过 Electron 打包成系统可执行文件(如.app, .exe 等),可以运行在 Windows,Mac 和 Linux 系统上。

nativefier 是一个基于 Electron 的命令行工具,完全开源,没有 UI 界面,且无需安装任何 app,只需要通过一行简单的代码,就可以轻松地将任何 Web 页面打包成可以在桌面运行的 app,并且支持在Windows,Mac 甚至是 Linux 系统上运行。

P.S. 作者是一位在 Google 工作的软件工程师,似乎是一位华人。

 目前,nativefier 在 Github 上已经获得了 2.14 万个 Star。

使用 nativefier 的过程非常简单,但需要提前准备一些东西。这里我以 macOS 作为演示,其它平台大同小异,可以参考网上的其它教程。

首先,我们需要安装 Node.js。你可以通过到 Node.js 的官方网站下载之后进行安装,但我这里更推荐使用 Homebrew,这样就可以在一个终端 app 里搞定全部的事情。

如果你还没有安装 Homebrew,可以通过下面这一条命令在终端进行安装。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

更多关于 Homebrew 的使用,可以参考 这篇文章 。

安装好 Homebrew,就可以安装 Node.js 了。在终端内输入:

brew install node

如果因为某些网络原因安装缓慢,可以试试换成国内的镜像源。跑完进度后,可以在终端中输入 node -v 和 npm -v ,测试一下版本,出现版本号即说明安装成功。

 

有了 Node.js,我们就可以来安装 nativefier 本体了。同样是在终端,输入下面的命令:

npm install nativefier -g

如果提示权限不足,可以试试在前面加上 sudo :

sudo npm install nativefier -g

搞定。接下来,我们就用 nativefier 来制作一个 app。

使用

最简单的使用方法,只需要用 nativefier 加上一个你需要转换成的网站地址就可以了。例如:

nativefier "https://www.sspai.com"

第一次运行会下载 Eletron 框架,可能会慢一些。

 

命令执行完毕后,会生成一个大小在 120 - 150M 左右的,名为「 ---darwin-x64」的文件夹。如果你没有更改运行地址,那么会默认出现在你的个人文件夹中。

点击进入文件夹内,就能看到刚刚制作好的 app 了。将这个 app 拖入到应用程序文件夹中,它就会出现在 Lanchpad 里。

一个网页打包的少数派 for Mac app 就做好了。🌝

上面的这个方法,会自动抓取网站的名字和 Logo 来作为名称及 app 图标。但有时,nativefier 也会「翻车」(比如上面 app 名字显示成了「--」),这时候就需要我们自定义 app 的名称。可以用下面这条命令:

nativefier --name "在这里输入 app 名字" "http://www.sspai.com"

注意,这个 app 名字不支持中文。如果你想要更改中文的 app 名称,可以在 nativefier 制作好的 app 上直接更改,再拖入到应用程序文件夹中。

不过,nativefier 有个小瑕疵:由于有些网站的图标或 logo 形状不好看,又或者太丑、分辨率太低,导致有些时候生成的 app 图标无法令人满意。

这个问题其实也有解决办法。nativefier 提供了一个 --icon 的参数,只要我们准备一张 png 格式的图片,就可以应用成图标了。

如果你不太明白上面在说什么,你也可以手动进行替换。提前准备好一个 icns 格式的图标,并命名为「electron.icns」,然后在生成好的 app 上右键点击「查看包内容」,进入「Contents - Resources」,将我们准备好的图标放到里面替换原来的图标即可。

例如,我这里就用 Sketch 为 Tinde 和小特画了一个和 macOS Catalina 原生风格类似的高清图标 ,然后再用 Image2icon 转换成 icns 格式,替换之后,就没有这么强烈的「像素风」了,违和感也降低了不少。

这个页面里有 4 个 app 都是用 nativefier 生成的

除了这些之外,nativefier 还提供了很多可供选择的参数,例如是否要限制 app 窗口的宽高、是否显示菜单栏、、是否在关闭时推出、是否开启 flash 支持等等,你可以在终端直接输入 nativefier 或 nativefier -h 来查看,或者是阅读官方的 API 文档 来学习。

哦对了,nativefier 制作的 app,甚至还支持调用系统的推送。例如将微信网页版打包成 app 之后,有新消息来时,一样也能够收到新消息通知。

好了,nativefier 就给大家介绍到这里,我要用刚打包好的 app 去摸鱼了。🌝

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

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

相关文章

xx销售公司IT建设目标及IT规划方案(69页PPT)

方案介绍: 随着市场竞争的日益激烈,XX销售公司认识到信息化建设对于提升公司竞争力、优化业务流程、提高管理效率的重要性。次IT建设方案为XX销售公司带来了显著的业务效益和管理提升。我们将继续致力于推动公司的信息化建设,为公司的发展提…

Arthas线上环境问题排查定位工具

一、Arthas简介 Arthas是alibaba推出的一款JVM性能诊断调优的工具,也可以称之为是线上监控诊断产品,通过全局的视角可以实时的查看应用load、内存、GC、线程的状态信息,并且还可以在不修改应用代码的前提下,对业务问题进行诊断&a…

手把手教你如何在Windows11下安装Docker容器

文章的主要要点: 为什么使用Docker:Docker可以简化部署过程,特别适合新手或在学习新技能(如Redis、MySQL、消息队列、Nginx等)时使用。 安装前的准备:在安装Docker之前,需要在Windows中开启一些…

2024都市解压爆笑喜剧《脑洞大开》6月28日上映

随着暑期档的临近,电影市场迎来了一剂强心针——由何欢、王迅、克拉拉、卜钰、孙越、九孔等众多实力派笑星联袂主演的都市解压爆笑喜剧《脑洞大开》正式宣布定档,将于6月28日在全国各大影院欢乐上映,誓为观众带来今夏最畅快淋漓的笑声风暴。 …

代码随想录-Day32

122. 买卖股票的最佳时机 II 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能…

MicroPython+ESP32 C3开发上云

传感器PinI/O状态D412输出1开0关D513输出1开0关 概述 MicroPython是python3编程语言的精简实现,能够在资源非常有限的硬件上运行,如MCU微控制器Micropython的网络功能和计算功能很强大,有非常多的库可以使用,它为嵌入式开发带来了…

FFmpeg编解码的那些事(3)-视频硬解码的基础知识

目录 前言: 1.iso/os x平台 2.windows平台 3.linux平台 4.Tips: 5.结论: 前言: 视频硬解码的过程就是把视频提取成图片变显示出来,就是播放器播放视频的过程,就可以理解为解码的过程。 在不同的系统…

【Android面试八股文】Java中有几种引用关系,它们的区别是什么?

在Java中,引用关系主要分为以下几种: 强引用(Strong Reference)软引用(Soft Reference)弱引用(Weak Reference)虚引用(Phantom Reference) 这些引用类型的区别在于它们对垃圾回收的影响程度。下面是对每种引用类型的详细解释及代码示例: 1. 强引用(Strong Referen…

LabVIEW、Matlab与Python的比较:从多角度详解三大编程工具

LabVIEW、Matlab和Python是工程和科学领域中常用的编程工具,各具特色。本文将从开发效率、计算性能、应用场景、学习曲线、成本和社区支持等多个角度,详细比较这三者的优缺点,帮助读者选择最适合其项目需求的编程工具。 比较维度 开发效率 La…

扫地机LiDAR形态之美

石头扫地机V20 LiDAR: Flash光源和Spot光源切换 图来自 Robot森 LiDAR(Light Detection and Ranging,激光雷达)技术在扫地机器人中的应用,不仅提升了机器的智能性和实用性,还展现了一种科技与艺术的融合之美。 一、外观设计的精致性 紧凑与轻巧:扫地机器人的LiDAR传感器…

C++ 43 之 自增运算符的重载

#include <iostream> #include <string> using namespace std;class MyInt{friend ostream& operator<< (ostream& cout , MyInt& int1); public:MyInt(){this->m_num 0;}// 前置自增&#xff1a; 成员函数实现运算符的重载 返回的是 引用&a…

STM32CubeMX配置-RTC周期唤醒

一、简介 MCU为STM32G070&#xff0c;采用内部时钟32KHZ&#xff0c;配置为周期6s唤醒&#xff0c;调用回调函数&#xff0c;进行喂狗操作。 二、配置 初始时间、日期、周期唤醒时间配置。 开启周期唤醒中断 三、生成代码 调用回调函数&#xff0c;进行喂狗操作。 //RTC唤醒回…

Java NIO ByteBuffer 使用方法

前言 最近在使用spring boot websocket xterm.js 给 k8s pod做了个在线的 web 终端&#xff0c;发现websocket的类核心方法&#xff0c;用的都是ByteBuffer传递数据&#xff0c;如下&#xff1a; OnMessagepublic void onMessage(Session session, ByteBuffer byteBuffer) {…

vitepress搭建的博客系统cdn引入github discussions评论系统

github仓库必须是公开的。 按照CDN的方式引入 打开discussions模块 安装giscus app 配置giscus 就是刚安装了giscus app的仓库 页面往下走&#xff0c;生成了代码&#xff1a; 配置vitepress 采用了CDN的方式引入 使用web component 随便找个地方试试组件 效果 有了…

LeetCode43.字符串相乘【大整数相乘】

LeetCode刷题记录 文章目录 &#x1f4dc;题目描述&#x1f4a1;解题思路 &#x1f4dc;题目描述 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 Big…

记录一次centos扩容

背景 在Vscode上连虚拟机写项目&#xff0c;突然提示磁盘空间不足(no space left on device)&#xff0c;一开始打算删些东西&#xff0c;这里参考博客&#xff0c;写得挺清楚的&#xff0c;但是操作后我发现实在没啥文件可以删除&#xff0c;所以干脆不删了&#xff0c;直接扩…

创建comfyui自定义节点

参考 https://github.com/liubai-liubai/ComfyUI-ImgSeg-LB/tree/main https://blog.styxhelix.life/?p33 安装 不需要安装任何其他依赖文件&#xff0c;只需要把0x_erthor_node文件夹复制到custom_nodes文件夹下&#xff0c;就能安装成功。 a1&#xff1a;展示了代码结构&…

ensp模拟器USG6000V1配置DCHP功能

接着上一篇配置&#xff0c;继续本篇的内容。开启DHCP功能非常简单&#xff0c;只需几个命令即可。实验拓扑图也非常简单&#xff0c;如下&#xff1a; 开启防火墙DHCP功能&#xff1a; [USG6000V1]dhcp enable 选择DHCP接口并设置接口IP地址&#xff0c;这里给g1/0/0配置2网…

数据库原理(关系型数据库基本理论)——(

一、关系的概念 1.关系的定义 &#xff08;1&#xff09;域 域是一组具有相同数据类型的值的集合&#xff0c;可以理解为int[]&#xff08;int类型的数组&#xff09;是一个域。 &#xff08;2&#xff09;笛卡儿积 简单来说&#xff0c;若干个域的笛卡儿积就是将这几个域的…

MySQL日志(三):数据安全

先来看一个结论&#xff1a;只要redo log和binlog保证持久化到磁盘&#xff0c; 就能确保MySQL异常重启后&#xff0c; 数据可以恢复。 binlog写入逻辑 binlog的写入逻辑比较简单&#xff1a; 事务执行过程中&#xff0c; 先把日志写到binlog cache&#xff0c; 事务提交的时候…