Loading... # Website-to-APK 网站转 Android 应用工具 # 一、概述 ## 1. 简介 ### A. 是什么 Website-to-APK 是一个简洁的命令行工具,可以将任意网站转换为 Android APK 应用,无需 Android Studio 或 Java 编程知识。该应用本质上是一个 WebView 容器,将目标网站包装为原生 Android 应用。 ### B. 为什么学 - 快速将现有网站或 Web 应用打包为 Android 应用 - 无需学习 Android 开发即可创建移动应用 - 支持 Userscripts,可自定义网站行为和外观 ### C. 学完能做什么 - 使用配置文件快速生成 Android APK - 为网站添加深色模式、自定义样式 - 配置应用图标、名称、权限等参数 - 实现 App Links 和深度链接功能 ## 2. 前置知识 ### A. 必备技能 - 基本命令行操作 - 了解配置文件格式 ### B. 推荐知识 - WebView 工作原理 - Android 应用签名概念 # 二、环境准备 ## 1. 系统要求 - Linux 或 macOS - Java 17(可选,工具可自动下载) - Android SDK 工具(可选,工具可自动安装) ## 2. 安装步骤 克隆仓库: ```bash git clone https://github.com/Jipok/website-to-apk cd website-to-apk ``` ## 3. 验证安装 ```bash ./make.sh ``` # 三、核心概念 ## 1. 基本术语 - WebView:Android 系统组件,用于显示网页内容 - APK:Android 应用安装包 - Keystore:用于签名应用的密钥库文件 - Userscripts:用户自定义脚本,类似 Tampermonkey ## 2. 工作原理 ```mermaid graph LR A[配置文件] --> B[应用配置] C[网站资源] --> D[WebView] D --> E[Android APK] B --> E F[Userscripts] --> D ```  ## 3. 架构图 ```mermaid graph TB A[用户] --> B[Android 应用] B --> C[WebView 组件] C --> D[目标网站] E[Userscripts] --> C F[配置参数] --> C C --> G[系统权限] G --> H[定位/相机/麦克风] ```  # 四、快速上手 ## 1. Hello World 示例 创建配置文件 webapk.conf: ```bash id = myapp name = My App Name mainURL = https://example.com icon = example.png ``` ## 2. 核心功能演示 生成签名密钥: ```bash ./make.sh keygen ``` 构建 APK: ```bash ./make.sh build ``` 测试安装: ```bash ./make.sh test ``` # 五、配置说明 ## 1. 基础配置 | 参数 | 说明 | 示例 | |------|------|------| | id | 应用 ID | myapp | | name | 应用显示名称 | My App Name | | mainURL | 目标网站 URL | https://example.com | | icon | 应用图标路径 | example.png | | allowSubdomains | 允许子域名导航 | true | | requireDoubleBackToExit | 双击返回退出 | true | | enableExternalLinks | 允许外部链接 | true | | openExternalLinksInBrowser | 外部链接在浏览器打开 | true | | confirmOpenInBrowser | 打开浏览器前确认 | true | | allowOpenMobileApp | 阻止外部应用链接 | false | ## 2. 高级配置 ### A. 深度链接 ```bash deeplink = example.com deeplink = example.com www.example.com ``` ### B. Userscripts ```bash scripts = scripts/*.js scripts = site-*.js scripts = script1*.js script20.js ``` ### C. WebView 选项 ```bash cookies = "key1=value1; key2=value2" basicAuth = login:password userAgent = "MyCustomUserAgent/1.0" JSEnabled = true DomStorageEnabled = true DatabaseEnabled = true geolocationEnabled = false cameraEnabled = false microphoneEnabled = false cacheMode = default ``` # 六、Userscripts 支持 ## 1. 工作原理 ```mermaid sequenceDiagram participant U as 用户脚本 participant W as WebView participant S as 网站 U->>W: 注入脚本 W->>S: 加载页面 U->>S: @match 匹配 U->>W: GM_addStyle U->>U: toast() ```  ## 2. 支持的指令 | 指令 | 说明 | |------|------| | @match | 匹配 URL 模式 | | @run-at | 脚本运行时机 | | GM_addStyle | 添加 CSS 样式 | | toast() | 显示提示消息 | ## 3. 常用场景 - 添加深色模式 - 自定义网站外观 - 添加新功能 - 修复移动端兼容性 # 七、可用命令 | 命令 | 说明 | |------|------| | ./make.sh build [config] | 应用配置并构建 | | ./make.sh keygen | 生成签名密钥 | | ./make.sh test | 安装并测试 APK | | ./make.sh clean | 清理构建文件 | | ./make.sh apk | 仅构建 APK | | ./make.sh apply_config | 应用配置文件 | | ./make.sh get_java | 下载 OpenJDK 17 | # 八、Edge-to-Edge 显示 ## 1. 启用方式 ```bash edgeToEdge = true ``` ## 2. CSS 调整 启用后需要调整网站 CSS 以防止内容被系统栏遮挡: ```css body { padding-top: var(--safe-area-inset-top); padding-bottom: var(--safe-area-inset-bottom); padding-left: var(--safe-area-inset-left); padding-right: var(--safe-area-inset-right); } ``` ## 3. 事件监听 应用会在应用安全区域后触发自定义事件: ```javascript document.addEventListener('WebToApkInsetsApplied', function() { console.log('Safe area insets applied'); }); ``` # 九、技术细节 ## 1. 系统要求 | 项目 | 版本 | |------|------| | 目标 Android API | 33 (Android 13) | | 最低 Android API | 24 (Android 7.0) | | 构建工具版本 | 33.0.2 | | Gradle 版本 | 7.4 | | Java 版本 | 17 | ## 2. 安全说明 - 默认密钥库密码为 123456,生产环境请修改 - 密钥库文件路径为 app/my-release-key.jks - 所有应用数据存储在应用私有目录 # 十、常见问题 ## 1. 构建问题 确保 Java 版本为 17,可使用 ./make.sh get_java 自动下载 ## 2. 签名问题 密钥库文件需妥善保管,丢失后无法更新应用 ## 3. 兼容性问题 如需支持不同 Android 版本,编辑 app/build.gradle 文件 *** ## 参考资料 1. [Website-to-APK GitHub Repository](https://github.com/Jipok/website-to-apk) 最后修改:2026 年 02 月 08 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏