PWAS作为URL处理程序

2021-06-04 04:11:32

作为URL处理程序的PWA是Projectsand的一部分,目前正在开发中。这篇文章将在执行进展情况时更新。

想象一下,你正在与朋友聊天使用即时通信应用程序,如麦斯兰群岛上的消息你正在谈论音乐。进一步想象你都有Music.example.com PWA Signdon你的设备。如果您想为您的朋友分享您最喜欢的曲目来享受,您可以派遣一个像https://music.example.com/rick-astley/never-gonna-give-you-up这样的深层链接。由于Thislink很长,Music.example.com的开发人员可能已经决定将AdformalShort链接添加到每个轨道,例如,Https://.example.com/r-a/n-g-g-y-u。

PWA作为URL处理程序允许像Music.example.com这样的应用程序作为URL处理程序托管,该网址致意与Music.example.com,* .music.example.com,或🎵.example.com,来自外面的sothat链接例如,PWA从即时通信应用程序或电子邮件链接,在已安装的PWA中打开而不是在浏览器选项卡中。

音乐或视频流媒体站点,以便在应用程序的播放器体验中播放链接或播放列表链接。

新闻或RSS读者如此遵循或订阅到App' S读卡器模式下的网站。

要在本地作为URL处理程序进行实验,在没有原始试用令牌的情况下,请启用#endent-Desktop-PWAS-URL处理标志://标志。

支持PWA作为URL处理程序功能仅限于桌面操作系统的Windows,MacOS和Linux。在Android中,Chromium浏览器通过生成WebApk来安装PWA,这可以为应用范围内的所有URL注册ASET Intent过滤器。这意味着PWA使用意图过滤器在操作系统级别处理了Android的URL。

要将安装的PWA与URL模式相关联,需要在Web AppManifest中指定这些模式。这发生在" url_handlers"成员。它接受具有原始属性的一系列对象,这是一个必需的字符串,它是匹配起源的模式。允许TheSepatterns具有通配符(*)前缀以包括多个子域(如* .example.com)。匹配这些起源的URL可以由此Web应用程序处理。该方案Isalways认为是https://。

下面的Web应用程序的摘录显示了来自介绍orderparagraph的音乐PWA示例如何设置为此。与通配符的第二个条目(" *。Music.example.com")使得应用程序也被激活为www.music.example.com或潜在的其他例子,如营销活动。例子。 COM。

{" url_handlers" :[{"起源" :" music.example.com" },{"起源" :" *。Music.example.com" },{"起源" :"🎵.example.com" }]}

在在线场景中,🎵.example.com的短链接通常会被击败到Music.example.com。此类导航重定向不是偏离线程方案的替代方案。因此,应用程序需要注册两项起源。

由于PWA生存在不同的原点(Music.example.com)上的某些URL(例如,🎵.example.com),因此该应用程序需要验证这些其他问题的所有权。在另一个起源上托管的Web应用程序源关联文件中的此Happens。

此文件必须包含有效的JSON。顶级结构是一个对象,具有名为" web_apps"此成员是一个对象数组,每个对象都表示uniqueeb应用程序的条目。每个对象都包含:

下面给出了上面的音乐PWA示例的示例Web-App-源关联文件。它会托管在原产地🎵.example.com上,并建立与Music.example.com PWA的关联,由其Web应用程序清单URL标识。

{" web_apps" :[{"清单" :" https://music.example.com/manifest.json" ,#34;细节" :{"路径" :[" / *" ],"排除_paths" :[" /内部/ *" ]}}]}}

Web-App-Origine关联文件类似于Apple' s关联域文件,android' s assetlinks.json文件,以及Windows' Windows-app-web-link file.What的不同之处在于Web-App-源 - 关联文件不使用特定于Aplatform的应用程序ID引用PWA,而是由其Web应用程序清单URL。

如果满足以下两种情况,PWA匹配用于处理的URL:

浏览器能够通过相应的Web应用程序源关联文件进行验证,每个Gyp-app-源关联文件都同意让此应用程序处理此类URL。

添加<链接rel =" web-app-源 - 协会">主文档的标题部分中的元素' s通过hRefAttribute指向Web-App-源关联文件的根路径。

将Web应用程序源关联文件放在应用程序的root的/.well-known/文件夹中。此项工作,文件名必须完全是Web-App-源关联。

要将PWAS视为URL处理程序,请务必将浏览器标志放在上面的浏览器标志,然后在https://mandymsft.github.io/pwa//上安装PWA。通过查看其Web应用程序清单,您可以看到具有以下URL模式的Ithands URL:https://mandymsft.github.io和https://luhuangmsft.github.io。由于后者在不同的原点(Luhuangmsft.githuit.io),而不是PWA,Mandymsft.Github.io上的PWA需要证明所有权,它通过HTTPS托管的Web-App-源关联文件发生了所有权:// luhuangmsft.github.io/.well-known/web-app-origin-association。

要测试它确实工作,请使用即时邮件应用程序的Inty Messaging应用程序发送测试消息,或者在电子邮件客户端中查看的电子邮件,该电子邮件客户端不是基于Web的邮件。电子邮件或短信应包含链接https://mandymsft.github.io或https://luhuangmsft.github.io。两者都应该在安装的PWA中打开。

Chromium团队使用核心原理设计和实施PWAS作为URL处理程序,使用核心原理进行控制,控制权限的访问权限,包括UserControl,透明度和人体工程学。

如果多个PWA寄存器作为给定URL模式的URL处理程序,则会提示用户选择它们想要处理哪些PWA,如果有的话 - 如果有的话。在Araverer选项卡中开始的导航未通过此提议处理,它明确地针对浏览器启动中断的导航。

如果在PWA安装期间无法成功完成必要的关联验证,则浏览器将不会将应用程序注册为受影响的URLS.URL处理程序的活动URL处理程序,如果实施不正确,可用于为网站劫持流量。这就是为什么THEAPP协会机制是该计划的重要组成部分。

特定于平台的应用程序已经可以使用操作系统API枚举用户' S系统上的已更改应用程序。例如,Windows上的应用程序可以使用FindAppUriHandLersAsAncapi来枚举URL处理程序。如果PWAS在Windows中注册为OS级别URL处理程序,则它们的存在会对其他应用程序可见。

起源可以随时修改其关联与PWA。浏览器将定期尝试Torevalate已安装的Web应用程序的关联。如果URL处理程序注册未能重新验证,因此关联数据已更改或不再可用,则浏览器将重新启动。

铬团队希望听到您与PWAS作为URL处理程序的经历。

是否有关于API的事情,这也像你一样的工作?或者是否有缺少的方法or需要实现您的想法?对SecurityModel有一个问题或评论?在相应的GitHub repo上提交规格问题,或将您的想法添加到Anexisting问题。

你发现铬的虫子' s的实施吗?或者从规范的实现是什么不同?在new.crbug.com上文件一个错误。请务必尽可能详细地包含,再现简单的再现说明,并输入UI>浏览器>零件框中的webappinstalls。毛刺很高兴分享快速和简单的Repros。

您是否计划使用PWA作为URL处理程序?您的公共支持帮助Chromium Team ReforitizeFeatures并展示了其他浏览器供应商支持它们的重要意义。

使用hashtag #urlhandlers和letus发送Tweet到@ChromiumDev和Letus了解您的位置和#39;重新使用它。

PWA是URL处理程序由Lu Huangom由Microsoft Edge团队指定和实施。这篇文章由Joe Medley.Hero Image通过Bryson Hammer进行审查。