从网页到Android APK:freeapp Capacitor打包部署完全指南(含安全区适配与本地通知)
【免费下载链接】freeapp一个ai聊天项目项目地址https://gitcode.com/gh_mirrors/fr/freeapp点击查看免费下载freeapp玄鲸 / Whale-LLT是一个本地优先的 AI 聊天陪伴应用基于 Web 技术开发并通过Capacitor打包为 Android APK。本文面向新手带你完整走通 freeapp 的 Capacitor 打包部署流程从环境准备、npx cap sync同步代码到刘海屏安全区适配、本地通知权限配置和 App 图标设置一篇看懂 Web 应用如何变成真正的安卓应用。为什么要把 freeapp 打包成 Android APK网页版浏览器直接打开 www/index.html虽然零部署即用但原生 APK 能解锁三类浏览器给不了的能力能力网页版APK 版Capacitor系统级消息通知受浏览器策略限制✅ LocalNotifications 插件文件导入 / 导出备份受下载目录限制✅ 写入设备 Documents 目录刘海屏 / 导航栏安全区无感知✅ 透明状态栏 CSS 安全区 这些能力分别由 www/utils/notificationManager.js、www/utils/dataMigrator.js 和 www/style.css 中的安全区样式实现。30秒看懂freeapp 的 Capacitor 项目结构freeapp 仓库是典型的「Capacitor 静态 Web」结构记住三个关键目录即可freeapp/ ├── www/ # Web 应用主体HTML/JS/CSSCapacitor 打包的源材料 │ ├── index.html # Web 应用主入口 │ ├── script.js # 主要前端脚本 │ ├── style.css # 样式含安全区适配 │ ├── capacitor.js # Capacitor 插件桥接初始化 │ └── utils/ # 通知、数据迁移、记忆表等工具模块 ├── android/ # Capacitor 生成的 Android 原生工程 │ └── app/src/main/ # AndroidManifest、MainActivity、图标、Splash ├── capacitor.config.json # Capacitor 核心配置 └── package.json # npm 依赖Capacitor 插件清单核心配置只有 5 行见 capacitor.config.jsonappIdcom.whale.llt即 APK 的安卓包名appName应用显示名称webDirwww同步时该目录内容会被整体复制到安卓工程中。package.json 中声明了本项目用到的 Capacitor 插件capacitor/filesystem文件读写、capacitor/local-notifications本地通知、capawesome/capacitor-file-picker文件选择器。环境准备打包 freeapp APK 的工具清单开始之前请确认电脑上已安装以下四项缺一不可Node.js 和 npm—— 运行npx cap系列命令Android Studio—— 打开原生工程、构建 APKJDK 17 或更高版本—— 编译运行所需Android SDK—— 随 Android Studio 一并安装即可。获取源码git clone https://gitcode.com/gh_mirrors/fr/freeapp cd freeapp npm install4 步从 Web 代码到 APK最快打包方法第 1 步安装依赖npm install第 2 步同步 Web 代码到安卓工程这是新手最容易遗漏的一步。Capacitor 会把 capacitor.config.json 中webDir指向的www/目录复制到android/工程里npx cap sync⚠️ 之后每次修改 Web 代码都必须重新执行npx cap sync否则 APK 里永远是旧页面。第 3 步用 Android Studio 打开工程npx cap open android等待 Gradle 同步完成。安卓工程的最低/目标 SDK 定义在 android/variables.gradleminSdk 23/targetSdk 35覆盖 Android 6.0 到 15。第 4 步构建 APK在 Android Studio 菜单中选择Build → Build Bundle(s) / APK(s) → Build APK(s)构建完成后点击右下角的locate链接APK 位于android/app/build/outputs/apk/debug/app-debug.apk将 APK 传到手机安装需允许安装未知来源的应用即可。调试期产物在 android/app/release/output-metadata.json 同级目录下管理。刘海屏和底部导航栏freeapp 安全区适配怎么做全面屏时代状态栏和导航栏会压住网页内容。freeapp 用了「原生透明栏 CSS 安全区」的组合拳① 原生层让状态栏透过来android/app/src/main/res/values/styles.xml 中的AppTheme.NoActionBarLaunch主题去除了 ActionBar配合AppTheme.NoActionBar的透明背景使 WebView 内容可以延伸到状态栏之下。② CSS 层用env(safe-area-inset-top)自动让位在 www/style.css 中标题栏、二级菜单和侧边栏头部都做了刘海屏适配.main-header { padding-top: env(safe-area-inset-top); /* 顶部让出刘海/挖孔高度 */ } .sidebar-header { padding-top: calc(20px env(safe-area-inset-top)); }env(safe-area-inset-top)是浏览器/WebView 提供的动态值普通手机上是 0刘海屏/挖孔屏上自动变成刘海高度一份 CSS 适配所有机型无需写死像素。 建议即便做了适配仍应在刘海屏、挖孔屏、三键/手势导航栏等不同设备上实测一轮见 README.md 的注意事项。本地通知让 freeapp 拥有系统级消息提醒APK 版的一大亮点是本地通知比如AI 角色给你发了条新消息实现分三层① 权限声明—— android/app/src/main/AndroidManifest.xmlPOST_NOTIFICATIONSAndroid 13 的通知发送权限SCHEDULE_EXACT_ALARM支持定时精确通知。② 启动时主动请求权限—— MainActivity.java 在onCreate中检查并请求通知权限同时处理麦克风权限避免 Capacitor 插件有权限声明却拿不到授权的尴尬。③ Web 端封装—— www/utils/notificationManager.js 将插件调用封装成window.notificationManager先检查环境是否为 Capacitor、再走checkPermissions → requestPermissions流程之后调用scheduleNotification({ title, body, id, schedule })即可发送通知www/capacitor.js 则统一导出Filesystem、FilePicker、LocalNotifications三个插件供 Web 代码使用。使用侧只需要window.sendNotification(新消息, AI 角色给你发来了消息); 首次使用通知和文件功能时系统会弹出权限请求请点允许。设置 App 图标与收尾细节仓库自带 icon.png 作为图标源文件1024×1024。更换图标的完整步骤请照做 app-icon-guide.mdnpx cap open android打开工程右键app文件夹 →New → Image AssetIcon Type 保持Launcher Icons (Adaptive Legacy)选择图标图片可调 Resize 滑块在 Background Layer 设置背景色Finish 后同步工程重新 Build APK。各分辨率的启动图Splash分布在 android/app/src/main/res/drawable-port-xxhdpi/ 等drawable-port-*、drawable-land-*目录横竖屏均已覆盖。常见问题打包部署排错速查症状原因与解法改了 Web 代码APK 里没变化忘记同步。执行npx cap sync后重新构建Gradle 同步失败检查JAVA_HOME、ANDROID_HOME是否正确先Build → Clean Project再npm install安装时提示风险手机设置中允许安装未知来源的应用通知不弹出Android 13 未授予通知权限检查系统通知开关数据疑似丢失移动端本地存储可能受系统清理影响定期在「我 → 数据管理 → 导出数据」备份 JSON完整排错流程见 README.md 的问题排查章节。小结freeapp 的 Capacitor 打包链路可以浓缩为一条命令链npm install npx cap sync npx cap open android配合 Android Studio 的 Build APK即可获得一个具备安全区适配、本地通知、文件导入导出能力的安卓应用。这套「静态 Web Capacitor 桥接」的模式轻量、易维护也非常适合作为新手学习跨平台打包的入门案例。赞分享【免费下载链接】freeapp一个ai聊天项目项目地址https://gitcode.com/gh_mirrors/fr/freeapp点击查看免费下载相关推荐终极指南Seafile离线部署全攻略含依赖打包与本地源配置终极指南Seafile离线部署全攻略含依赖打包与本地源配置 在断网环境或安全隔离的网络中部署文件同步系统Seafile作为一款高性能的开源云存储系统提存储后端Page Assist完全指南从安装到精通本地AI网页交互Page Assist完全指南从安装到精通本地AI网页交互 引言告别云端依赖本地AI驱动网页交互新范式 你是否厌倦了依赖云端AI服务的延迟与隐私顾虑是否人工智能大模型AI 应用本地部署RAG从崩溃到兼容Capacitor 6 Android插件适配全指南从崩溃到兼容Capacitor 6 Android插件适配全指南 在移动应用开发中插件兼容性问题常常成为开发者的噩梦。特别是当升级到Capacitor 6版移动开发跨平台插件系统原生移动创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考