Skip to content

Implement deep links #76

Open
Open
@gnprice

Description

@gnprice

This feature means setting things up so that when you open an appropriate Zulip link from arbitrary apps on your device — like your mail client when reading a Zulip email notification, or your browser when looking at a GitHub thread where someone refers to a Zulip conversation — it opens in the Zulip app, rather than a browser, and goes directly to an appropriate screen in the app.

This is a feature we don't currently have in the zulip-mobile RN app (nor for that matter in zulip-desktop). It'd be a nice feature to have.

For Zulip, there are two ways the feature can work, and we probably ultimately want both of them:

  • Handle a URL like https://chat.zulip.org/ or https://example.zulipchat.com/#narrow/stream/37-foo/topic/bar — the same URLs that the web app puts in the location bar, and provides at "Copy link to message".

    This is the most convenient, when it applies. It requires us to tell the OS at app install time (or upgrade time) what URL patterns we can open, so we'll only be able to do it for URLs like those of Zulip Cloud and chat.zulip.org, not for arbitrary Zulip servers.

  • Make up a way of encoding an arbitrary Zulip realm URL, plus that other information like #narrow/stream/37-foo/topic/bar that the web app puts in a fragment, into a zulip://… URL. Then handle those.

    This one can work in full generality, for all servers.

    In order to be useful, it requires that we start providing these URLs in some contexts where people might want to follow them. For example, Zulip email notifications have a "view it in Zulip" link, and we could start providing two different links there: one for "on the web" and one for "in the Zulip app". (Ideally this would be combined with zulip-desktop gaining support for the same URLs around the same time.)

Chat threads with further technical discussion:

Related issues in zulip-mobile and zulip-desktop, for different aspects of this:

Draft implementation for zulip-mobile on Android, of the zulip:// version:

Metadata

Metadata

Assignees

No one assigned

    Labels

    beta feedbackThings beta users have specifically asked for

    Type

    No type

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions