安卓 intent filters
当安装一个 PWA 到安卓系统上时,该应用将会为它所有的 URL 注册一系列 intent filters。当用户点击任何包括在这个 PWA 中的链接时,该应用将会以应用程序的形式被打开,而不是在浏览器中被打开。
让我们看看下面这个 manifest.json
文件的片段,当它从程序启动器中被调用时,它将会以一个独立应用程序的形式启动 https://example.com/
,并且不需要任何浏览器。
“start_url”: “/”,
“display”: “standalone”,
一个 WebAPK 包括如下的 intent filters:
如果用户在某个应用程序中点击了一个跳转到 https://example.com/read
的链接,这一行为将会被 intent 捕捉到,并且在对应的 PWA 中打开该链接。
注意:从地址栏里直接跳转到
https://example.com/app/
和从带有该消息传递对象(intent)过滤器的原生应用里打开这个链接是一样的。Chrome 会认为用户是有意识地想要访问这个地址并且打开它。
使用 scope
限制 intent filters
如果你不想要你的 PWA 处理网站上所有的链接,你可以添加 scope
属性到 manifest 中。sc