#552: PWAs as URL Handlers

Visit on Github.

Opened Aug 21, 2020

Saluton TAG!

I'm requesting a TAG review of Progressive Web Apps as URL Handlers.

"Native applications on many operating systems (Windows, Android, iOS, MacOS) can be associated with http(s) URLs. They can request to be launched as URL handlers when associated URLs are activated. For example, a user could click on a link to a news story from an e-mail. An associated native app for viewing news stories would automatically be launched to handle the activation of the link. Web developers would be able to build more compelling PWA experiences with stronger user engagement if PWAs could request to be URL handlers through their web app manifests."

Further details:

  • I have reviewed the TAG's API Design Principles
  • The group where the incubation/design work on this is being done (or is intended to be done in the future): WICG
  • The group where standardization of this work is intended to be done ("unknown" if not known): Web Applications Working Group
  • Existing major pieces of multi-stakeholder review or discussion of this design: Github issues
  • Major unresolved issues with or opposition to this design: compatibility with Declarative Link Capturing proposal
  • This work is being funded by: Microsoft

You should also know that...

We'd prefer the TAG provide feedback as (please delete all but the desired option): 🐛 open issues in our GitHub repo for each point of feedback

Discussions

Comment by @kenchris Sep 1, 2020 (See Github)

@marcoscaceres @anssiko you probably want to have a look at this

Comment by @kenchris Sep 1, 2020 (See Github)

I got a bit confused by

            "exclude_paths": [
                "/only/for/partnerapp/*"
            ]

Does this mean that the partnerapp (in this case) cannot be developed as a PWA?

Comment by @LuHuangMSFT Sep 3, 2020 (See Github)

@kenchris Thanks for asking. That exclude pattern says that the app at https://contoso.com/manifest.json has permission to capture all paths except for paths matching "/only/for/partnerapp/", i.e. https://tenant.contoso.com/only/for/partnerapp/. There is no special significance to that particular path pattern. I just wanted to illustrate that the origin may want to allocate URLs to be handled by different apps.

There's no reason why https://tenant.contoso.com/only/for/partnerapp/ cannot itself be the scope of a PWA (although the origin would then probably not want to allow other apps to handle those URLs). There is also no reason why the PWA at https://partnerapp.com/manifest.json would be hampered.

Comment by @LuHuangMSFT Sep 21, 2020 (See Github)

Quick fyi for visibility: I just merged a small PR to the explainer which mainly adjusted the manifest and association file JSON format for this feature. https://github.com/WICG/pwa-url-handler/pull/17

Comment by @kenchris Jan 27, 2021 (See Github)

I think it makes sense to use the pattern from https://github.com/WICG/urlpattern/blob/master/explainer.md for this @wanderview

At least for allowed urls or disallowed urls

Comment by @wanderview Jan 27, 2021 (See Github)

FWIW I suggested that in https://github.com/WICG/pwa-url-handler/issues/21.

Comment by @kenchris Jan 27, 2021 (See Github)

"There is one use case that we wish to address in this explainer: URL activation in native applications."

I think this should also work for installed web applications such as Progressive Web Apps if the URL is out of scope

Comment by @ylafon Jan 27, 2021 (See Github)

Also, the goals seems to be matching what the MiniApp WG wants to define, I suggest discussing with them as well (ping @xfq)

Comment by @LuHuangMSFT Jan 28, 2021 (See Github)

I think it makes sense to use the pattern from https://github.com/WICG/urlpattern/blob/master/explainer.md for this

I'll open a PR asap to edit the explainer so we can see what it looks like using URLPattern.

I think this should also work for installed web applications such as Progressive Web Apps if the URL is out of scope

I think url_handlers and web-app-origin-association is able to support this. However, I think this behavior falls under navigation capture and would like to see the in-scope version of it enabled with Declarative Link Capturing first.

Also, the goals seems to be matching what the MiniApp WG wants to define, I suggest discussing with them as well

Thanks for the connect. I'll review the group charter and docs.

Discussed Sep 1, 2021 (See Github)

Rossen: going to be closed as no change because the proposal is outdated and overtaken by another spec with scopes, that's already acknowledged in a new explainer. How to close? Overtaken.

Closed with comments

Comment by @kenchris Sep 15, 2021 (See Github)

Hi there, how does this relate to https://github.com/WICG/manifest-incubations/blob/gh-pages/scope_extensions-explainer.md

That document says:

The Scope Extensions proposal is intended to be a replacement for the URL Handlers proposal with the following changes:

We assume that this means that this proposal is now not moving forward?

Comment by @atanassov Sep 15, 2021 (See Github)

We took another look this during our Gethen vf2f plenary. At this point we are closing this review since it has been already overtaken by the new work on scope extensions. Thank you for working with us. We look forward to reviewing the new proposal.