[译] PWA 再进化,可以生成一个安卓原生的 WebAPK 了,学习路线+知识点梳理

注意:从地址栏里直接跳转到 https://example.com/app/ 和从带有该消息传递对象(intent)过滤器的原生应用里打开这个链接是一样的。Chrome 会认为用户是有意识地想要访问这个地址并且打开它。

使用 scope 限制 intent filters

如果你不想要你的 PWA 处理网站上所有的链接,你可以添加 scope 属性到 manifest 中。scope 属性会告诉安卓系统只在 URL 与 originscope 匹配时打开你的 PWA,并且规定哪些 URL 应该在 PWA 中被开打以及哪些 URL 应该在浏览器中被打开。当你的应用与其他非应用内容在同一个域名下时,scope 非常有帮助。

让我们看看下面这个 manifest.json 文件的片段,当它从程序启动器中被调用时,它将会以一个独立应用程序的形式启动 https://example.com/app/,并且不需要任何浏览器。

“scope”: “/app/”,
“start_url”: “/”,
“display”: “standalone”,

和之前一样,生成的 WebAPK 将会包括 intent filters,但它会修改 APK 中 AndroidManifest.xml 里的 android:pathPrefix 属性:

让我们看几个简单的例子:
https://example.com/app/ — 在/app/路径下
https://example.com/app/read/book — 在 /app/路径下
https://example.com/help/ — 不在 /app/路径下
https://example.com/about/ — 不在 /app/路径下

如果你不想设置 scope 属性,或者想知道如何定义 PWA 的 scope,更多内容请参考 scope

权限管理

权限管理的运作和其他网络应用是一样的,它们需要在运行的时候请求而不是在安装的时候请求。理想的情况是只在你需要它们的时候请求。比如说,不要在一开始加载的时候就请求相机的权限,而是在用户准备拍照的时候再请求。

注意:通常情况下,安卓系统会马上授予刚安装的应用发送通知的权限,但这并不适用于通过 WebAPK 安装的应用。因此,你需要在运行的时候发起通知权限的请求。

管理储存空间和应用状态

虽然 PWA 是通过 APK 安装的,Chrome 会使用当前的配置文件存储数据,并且不会将它们隔离开。这为浏览器和应用程序之间交互提供了数据共享的体验。在这里,缓存是共享且活跃的,任何客户端的储存空间都是可以被访问的。与此同时,服务器端也是安装好并且随时可以运行的。

不过,这在用户清除他们的 Chrome 配置文件或者网站数据时会出现问题。

常见问题

如果用户已经安装了该网站的原生应用怎么办?

就像 PWA 安装横幅一样,用户可以添加任何独立于原生应用的网站到主屏幕。如果你期望用户同时安装这两者,我们建议你用不同的图标或者名字来区别你的网站和应用。

当用户通过安装了的 PWA 打开某个站点时,Chrome 在运行吗?

是的,一旦该站点通过主屏幕被打开,主要的活动依旧在 Chrome 下运行。缓存、权限以及所有的浏览器状态将会被两者共享。

如果用户清除了浏览器缓存,已安装的 PWA 的储存空间会被清除吗?

是的。

如果我使用一个新的设备,我的 PWA 会被重新安装吗?

并不是所有的时候都会。但我们认为这是一个很重要的问题,并且在努力完善它。

我可以注册我自己处理 URL 的方法和协议吗?

不可以。

权限问题是如何解决的?我收到的提示是来自于安卓系统还是 Chrome?

权限依旧是通过 Chrome 管理的。用户将会收到 Chrome 的提示从而授予权限,并且可以在 Chrome 设置中编辑这些权限。

PWA 可以在哪一个版本的安卓系统上运行?

PWA 可以在所有安装了 Chrome 的安卓系统上运行,具体来说就是 Jelly Bean 以上的版本。

PWA 使用的是 WebView 吗?

不是,网站是通过 Chrome 打开的,打开网站的 Chrome 的版本则是用户添加该 PWA 的那一版本。

我们可以上传能够提交到应用商店的 APK 吗?
不可以,因为目前还没有可以支持 PWA 上传到应用商店的签名信息。
PWA 在应用商店的列表中吗?
不在。
我是安卓平台上其他浏览器的开发者,我能为我的网络应用实现这样快捷的安装流程吗?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取


做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取

[外链图片转存中…(img-73OeOfS5-1712271551551)]

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值