zhaouv / html5-packer

借助浏览器, 额外提供fs, 把html5应用伪装成桌面app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTML5 Packer

借助浏览器, 额外提供fs, 把单网页html5应用伪装成桌面app

适合场景: 轻量级的需要文件系统和GUI界面的程序

大概是给 使用win10的电脑小白 (python node之类的都没有装) 提供能跑的本地脚本的最简洁的方式
c写简单的GUI应用偏麻烦,
python打包后体积太大,
csharp windows自带运行时, 来作为server(用c做server也是可行的, 区别不大)
网页+js 能非常简洁的给出GUI界面

Usage

下载release或build后保留app.exe config.ini lib/ app/

把单网页html5应用放在./app中 (默认入口是index.html)

需要在<head>最开始处放置<script src="/lib/fs.js"></script>
否则程序会3分钟内自动关闭
(毕竟是纯后台的服务, 小白不一定知道怎么关, 点x时同时关闭服务的脚本在/lib/fs.js里)

程序图标..

网页图标由网页的 shortcut icon (favicon.ico) 决定

Windows: 双击app.exe启动

Windows 8及以上可直接运行本软件,Windows 7需要安装.Net Framework 微软下载界面

Linux: mono app.exe(需要安装mono全家桶

Build

docker(推荐)

sudo docker run --rm -it -v $(pwd):/w mono:6.12.0.122 bash -c 'cd /w&&bash builddebug.cmd&&bash buildapp.cmd'

win

复制loadenvcopy _loadenv.cmd loadenv.cmd后根据 Microsoft Visual Studio 的版本修改

loadenv
buildapp

linux

配置编译环境

bash buildapp.cmd

fs

提供fs.js
仿照nodejs的api提供一些函数
暂时不以require('fs')来提供fs, 而是直接作为全局变量
借助 XMLHttpRequest 实现

网页没有Buffer类, 直接以字符串作为结果

fs.readFile         // 内容 encoding 仅支持 utf8 和 base64, 文件名 encoding 不允许调整, 下略
fs.readFileSync
fs.writeFile
fs.writeFileSync
fs.readdir
fs.readdirSync
fs.mkdir            // 无论如何设置 options, 总是使用 { recursive: true }
fs.mkdirSync
fs.rename
fs.renameSync
fs.unlink           // unlink 和 rmdir 均以 { recursive: true } 来移除文件和目录
fs.unlinkSync
fs.rmdir
fs.rmdirSync

fs.promises.readFile
fs.promises.writeFile
fs.promises.readdir
fs.promises.mkdir
fs.promises.rename
fs.promises.unlink
fs.promises.rmdir

fs.unstandard.encode64
fs.unstandard.decode64
fs.unstandard.writeMultiFiles   // 类似writeFile, 但是一次写入多个文件
fs.unstandard.listFile          // 类似readdir, 列出所有文件和目录, data=[[files],[subdirs]]
fs.unstandard.deleteFile        // 递归的移除文件和目录

About

借助浏览器, 额外提供fs, 把html5应用伪装成桌面app

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C# 79.8%Language:JavaScript 17.3%Language:HTML 2.5%Language:Batchfile 0.5%