Skip to content

Cross app links #822

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open

Cross app links #822

wants to merge 4 commits into from

Conversation

0x70b1a5
Copy link
Contributor

@0x70b1a5 0x70b1a5 commented Aug 18, 2025

Addresses #802, #805.

#811 isn't quite done yet, unless I misunderstand the reqs:

  • ✅ With this PR, the groundwork exists to let any app open apps by sending a message to the parent iframe.
  • ❌ However, we lack a way to automagically invoke the message-send on a hd://blah-address link click. The frontend that wishes to open the app must manually invoke the message to the parent frame.

It might be that this state of affairs is sufficient. If not, however, I'd ask for @nick1udwig to discuss with me the intended end-state, eg "arbitrary link click panopticon intercepts hd:// protocol a[hrefs]" or something ... it's a developer ergonomics q.

Testing

  1. open the appstore
  2. click the install button and verify that you're navigated to the app's dedicated page, and that the install action is automatically initiated.
  3. If the install errors, the page should NOT blank out with a single message smack-dab in the middle anymore; instead, informative notifications should pop into the notif bay at top-right, and a toast with a preview of the message should also appear, in a dark or light mode corresponding to your browser's preference.
  4. If the install is successful, verify that the Launch button appears on the app's store page.
  5. Click Launch.
  6. Verify the iframe opens in an app drawer as other apps opened from the homepage do.
  7. Verify that tapping the Omnibutton takes you to the Recent Apps view, displaying your newly-installed opened app therein.
  8. Verify tapping the Omnibutton again closes the Recent view and returns you home.
  9. (bugfix) Verify that tapping the Omnibutton from the Homepage opens Recents as expected, and doesn't flash it for a frame and then close it again.
  10. Back in the Appstore, page through the main grid to an app you've already got installed with a Launch button that is visible in the card.
  11. Verify that when you click the Launch button in the app card, you are NOT taken to the app's App Store page, but rather that the app opens in a frame as from home.
  12. Omnibutton click -> verify Launched app is present in the Recents list, alongside the initially opened app (if present).
  13. On mobile, verify swiping left or right closes the apps.

Copy link
Member

@nick1udwig nick1udwig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The good:

  • Launch works great on non-localhost

To fix before merge:

  • Launch does nothing on localhost: this is because /main:app-store:sys is opened in its own page, not an iframe within homepage. Ideally it would open the app in a new tab
  • Install doesn't work for me from the "apps view". It works fine from the app page itself, but when I click it from the "apps view" it reports a number of bad things (see attached). It downloads different files from the same publisher. I THINK what is happening is it is trying to download the same thing twice somehow

Ideal thing we are aiming for:

  • Render links like hd://main:app-store-sys/foo as clickable and do the correct thing when they are clicked. So an app need only write that link and it will Just Work. E.g. imagine you and I are chatting in a chat app and I send you a link of that form: we ideally want to render it as clickable
  • How technically feasible is this?

Install issues error messages:

https://gist.github.com/nick1udwig/1b4f8f0ea8b094dd9ca0b7a2d73c9ff8

@0x70b1a5
Copy link
Contributor Author

@nick1udwig I'm seeing some strange things with installs - the Install intent works for Hypergrid, but not for Wifenote. I'll maybe pull you in for an assessment tomorrow morning if possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants