鸿蒙6/鸿蒙NEXT WebView套壳APP源码

鸿蒙6/鸿蒙NEXT WebView套壳APP源码

本文使用AI生成!


一、事情的起因(真实踩坑)

我之前一直在做一个网页项目,但因为业务展示的原因,需要打包成 APP 使用。

在鸿蒙 4.2 的时候,这件事其实非常简单:

  • 找一个安卓 WebView 套壳 APP
  • 用 MT 管理器改一下 URL
  • 直接就能用了

整个流程几乎是“无脑操作”,而且这个方案稳定跑了一年多,没有任何问题


二、问题爆发:升级鸿蒙 NEXT 后直接炸了

直到今年(2026),我换了新手机(Mate80ProMax),系统直接升级到了 鸿蒙 6(HarmonyOS NEXT)

问题就来了。

虽然可以通过“卓易通”兼容运行之前的安卓壳子,但是:

文件上传直接废了

具体表现是:

  • <input type="file"> 还能点
  • 但是:
    • ❌ 不能调用相机拍照
    • ✅ 只能从本地相册选图片

原来是可以选择相机或文件上传的:

在这里插入图片描述

新版点击选图,直接跳转文件页面:

在这里插入图片描述

这对我来说是致命问题,因为我的业务是需要现场拍照上传的。


三、为什么会这样?(踩坑分析)

我后面查了一圈 + 问 AI,大概原因是:

👉 鸿蒙 NEXT 出于隐私安全考虑:

  • 不再允许 WebView 直接调用系统相机
  • H5 的文件选择需要宿主应用手动拦截
  • 再由原生代码去:
    • 调起相机 / 相册
    • 拿到结果
    • 回传给网页

简单说就是:

👉 以前安卓是“自动帮你做”,现在鸿蒙是“你自己写一套流程”

四、我尝试过的几个方案(全踩坑)

方案1:找现成鸿蒙 WebView 套壳

结论:

❌ 没找到能用的

要么:

  • 不支持文件上传回调
  • 要么压根不是鸿蒙 NEXT 原生

方案2:反编译原来的安卓壳子改

思路是:

  • 找 WebView 相关代码
  • 修改文件选择逻辑

问题:

❌ 太麻烦,而且不一定能编译成功

方案3:前端绕过(JS 调相机)

比如:

  • 用 H5 API 直接调用摄像头

问题:

❌ 如果壳子没权限,一样没用

五、为什么必须解决?

有朋友可能会说:

那你用旧手机不就行了?

问题是:

  • 我现在要频繁改网页功能
  • 必须实时验证在 APP 里的效果
  • 总不能天天带两台手机开发吧…

👉 这完全不现实


六、最终决定:自己写一个鸿蒙原生壳

被逼无奈,我直接上手:

✅ 用 ArkTS 写了一个 HarmonyOS NEXT 原生 WebView 套壳应用

于是这个项目就诞生了👇


七、这个项目能做什么?

简单说一句话:

👉 改一个 URL,就能把网页打包成鸿蒙 APP

目前已经做了这些功能:

  • ✅ WebView 全屏加载网页
  • ✅ 支持 JS / DOM Storage / 图片访问
  • ✅ 文件上传支持(相机 + 相册)
  • ✅ 返回键拦截(网页返回 + 双击退出)
  • ✅ 启动页(Splash)
  • ✅ 权限自动申请(相机 / 相册)
  • ✅ 沉浸式体验(隐藏导航条)

八、最关键:文件上传问题已解决 ✅

重点来了:

👉 现在可以正常:

  • 📸 直接拍照上传
  • 🖼️ 相册选择上传

也就是把鸿蒙 NEXT 缺失的那一段:

“WebView → 原生 → 相机 → 回传”

👉 全部补齐了


九、项目地址

👉 GitHub:项目地址

https://github.com/ZhaoYuLiOfficial/HarmonyOS6-WebView-Shell 

👉 Gitee:项目地址

https://gitee.com/ZhaoYuLiOfficial/HarmonyOS6-WebView-Shell 

(如果对你有帮助,欢迎点个 Star ⭐)


十、总结

这次踩坑最大的感受就是:

👉 鸿蒙 NEXT 对安全收得很紧,但开发成本确实上来了

以前安卓一句话能搞定的事情:

现在需要自己补一整套逻辑。

不过好处是:

  • 权限更清晰
  • 行为更可控

🤝 交流 & 反馈

如果你也在做类似的项目,或者遇到类似问题:

  • 欢迎留言交流
  • 也可以提 Issue 一起讨论

本文使用AI生成,大神们轻点喷,大学生第一个开源项目呜呜

Read more

Dify平台如何嵌入企业微信/钉钉工作流?消息机器人集成教程

Dify平台如何嵌入企业微信/钉钉工作流?消息机器人集成教程 在企业日常协作中,员工每天要切换多个系统查找资料、重复回答相同问题、手动撰写报告——这些低效环节正悄然吞噬着组织的生产力。而随着大语言模型技术的成熟,AI 已不再只是实验室里的“黑科技”,而是可以真正走进会议室、群聊和工单系统的实用工具。 一个典型的场景是:销售团队在钉钉群里讨论客户反馈,有人提问:“上个月华东区的主要投诉集中在哪些方面?” 如果此时能有一个机器人自动调用知识库,几秒内生成结构化摘要,会是怎样一种体验?这正是 Dify + 企业微信/钉钉 集成所能实现的能力。 本文不讲空泛概念,而是带你一步步构建这样一个真实可用的 AI 消息机器人——无需从零编码,也不依赖复杂的 DevOps 流程。我们将聚焦于如何将 Dify 构建的 AI 应用,以安全、稳定、可维护的方式嵌入到企业高频使用的协作平台中。 核心架构设计:让 AI 能力触手可及 要让 AI 真正被用起来,关键不是模型多强大,

Python Web 自动化神器:Selenium 超详细入门教程 (Zero to Hero)

Python Web 自动化神器:Selenium 超详细入门教程 (Zero to Hero)

目录 * Python Web 自动化神器:Selenium 超详细入门教程 (Zero to Hero) * 1. 什么是 Selenium? * 2. 环境搭建 (Prerequisites) * 2.1 安装 Python * 2.2 安装 Selenium 库 * 2.3 浏览器驱动 (Browser Drivers) * 3. 快速上手:你的第一个自动化脚本 * 4. 核心技能:元素定位 (Locating Elements) * 常用定位方式一览 * 5. 元素交互 (Interacting with Elements) * 5.1 常用操作方法 * 6. 等待策略:让脚本更稳定 (Waiting

Leptos + Tauri 2 前端配置Trunk + SSG + 移动端热重载一次打通(Leptos 0.6 口径)

1. 三条 Checklist:每一条都对应一个真实的坑 1.1 用 SSG(别走 SSR) Tauri 的工作方式更像“静态站点宿主”:你给它一份静态资源目录(HTML/CSS/JS/WASM),它在 WebView 里加载并运行。官方明确:Tauri 不官方支持基于服务器的方案(SSR),因此要用 SSG/SPA/MPA 这类静态路线。 (Tauri) 这对 Leptos 意味着:在 Tauri 里通常跑的是 WASM 前端(客户端渲染),而不是把 Leptos 的服务端渲染端也一起塞进去。 1.2 serve.ws_protocol = "ws&

美妆试妆系统:GLM-4.6V-Flash-WEB虚拟涂抹口红色号

美妆试妆系统中的视觉智能革命:基于 GLM-4.6V-Flash-WEB 的虚拟口红涂抹实现 在直播带货和线上美妆选购日益普及的今天,用户不再满足于“看图说话”式的商品展示。他们想要的是——我涂上这支口红会是什么样子? 尤其是面对琳琅满目的“豆沙色”“枫叶红”“吃土色”,仅靠文字描述或模特试色图,很难判断是否适合自己。这正是虚拟试妆技术的价值所在。 但要让AI真正理解“适合黄皮的哑光玫瑰色”并精准地“画”在你的嘴唇上,并非简单的图像滤镜叠加。它需要模型同时读懂图片和语言,还要具备对色彩趋势、肤色匹配、面部结构的空间感知能力。过去这类系统依赖多个独立模块拼接:人脸检测 + 唇部分割 + 色彩检索 + 渲染引擎,流程复杂、延迟高、泛化差。 而现在,随着智谱AI推出 GLM-4.6V-Flash-WEB 这类专为Web端优化的轻量级多模态大模型,我们终于看到了一种更简洁、更智能、也更可落地的解决方案。 从“拼凑系统”到“端到端理解”:为何传统方案走不通? 早年的虚拟试妆工具大多基于传统计算机视觉算法。