Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【提案】manifest.json 新增 pwa_url 字段 #235

Open
Gaubee opened this issue Jan 21, 2025 · 2 comments
Open

【提案】manifest.json 新增 pwa_url 字段 #235

Gaubee opened this issue Jan 21, 2025 · 2 comments

Comments

@Gaubee
Copy link
Contributor

Gaubee commented Jan 21, 2025

JmmAppInstallManifest 里增加一个 pwa_url 字段,如果配置了这个字段,那么在长按桌面图标时,会有一个“安装 PWA”的选项,点击后,会引导用户将 PWA 应用添加到桌面。

我曾经让小华去开发“转换 PWA 应用”的工具。意味着可以把传统 PWA 应用转化成 Dwebapp 应用。
但是开发成本的问题,这个方向现在暂停了。但不代表这个方向没有价值。
本提案是从另一个方面来关联 PWA 应用,与“转换 PWA 应用”并不冲突,是两回事。

PWA 与 Dwebapp 是没有关联的,有这几个差别:

  1. PWA 可以添加到桌面,可以真正的全屏,更加符合“原生应用”的体验,特别是在 IOS 平台上,这种原生级别的体验,是非常重要的。
  2. PWA 是没有 Dwebapp 的后端的,只有 ServiceWorker 能代理请求当前域名,也就意味着 PWA 应用之间,是不能像 Dwebapp 之间那样互相在本地通讯的,必须依赖互联网来通讯。
  3. PWA 应用和互联网关联比较强,可能会有访问不稳定的问题。升级的机制也不像 Dwebapp 那样简单直接。我们需要一些工作,才能让 PWA 应用更加稳定易用。

一旦这个功能上线,就意味着可以推广用户使用 PWA,以获得原生级别的导航使用体验,但是它的数据是在 Chrome、Safari 中存储着。
而 Dwebapp 的优势,在于应用互联、离线使用。
所以对于一些“钱包”应用,使用 Dwebapp 仍然具有必要性和优势,这些数据都在 Dweb Browser 中管理着。

在 PWA 需要钱包授权时,需要使用 dweb-deeplink 唤醒 Dweb Browser 里的钱包应用,然后提供回调 URL 来回传数据,这就意味着需要服务器来中转这个数据。

参考资料

  1. Android 参考:Trusted Web Activity
  2. iOS 参考: 苹果怎么添加支付宝小程序到桌面
@kingsword09
Copy link
Contributor

@Gaubee
Copy link
Contributor Author

Gaubee commented Jan 26, 2025

这里头最麻烦的点是“如何引导用户安装使用pwa”。
用户刚刚下载了dwebapp应用,然后就再次被告知还要安装一次?
特别在iOS上,这个操作需要两步走:先是打开原生的分享面板,然后选择添加到主屏。
Android第一次也麻烦,需要引导用户授权桌面权限。(虽然授权与否,不影响Android上使用独立的activity来打开pwa,但终究会干扰用户的体验)

其次,麻烦的点在于,这个功能的入口要放哪里呢?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants