[Feature] Make Obsidian links work anywhere on mobile and open in the installed Obsidian app

Platform

[ ] iOS
[X] Android

Obsidian Mobile version: v1.3.2


Use case or problem

On Android (I don’t know if also on iOS) links starting with obsidian:// are not recognized as links in many (most?) apps, e. g. in Google Keep and Docs, and thus cannot be opened.

Proposed solution

Register the mobile app to open links like http://local.obsidian.md/someMoreStuff. Then translate the link to obsidian://someMoreStuff and open that. E. g. the Evernote app has registered to open http://evernote.com links. I know that Evernote has sync to the cloud baked in and Obsidian has not, but this solution would still work, even as a completely local solution, no server needed. These http://local.obsidian.md/someMoreStuff links would work only if the app is installed and intercepts the link.

Example: Translate
http://local.obsidian.md/open?vault=MyVault&file=TheBestNoteEver
to
obsidian://open?vault=MyVault&file=TheBestNoteEver

Current workarounds

  • You can create a page in Evernote, put the obsidian:// link there (it works in Evernote) and then link to this Evernote page from any app, e. g. Google products.
  • One could make a third-party app register these links and then call the obsidian:// link.

Evernote’s implemention of this works fully offline. I just tested that.

I found an open-source Android app which intercepts http-links to open in a defined app instead of the browser: GitHub - snarfed/open-in-app: UNMAINTAINED: Android app that makes Facebook, Twitter, etc. links open in their native apps instead of the browser.

The author says it is easy to add new apps and it looks easy, too. Most of the work would be setting up the Android dev environment.

This is the file where the infos for Obsidian must be added: open-in-app/apps.yaml at master · snarfed/open-in-app · GitHub

I have found a working solution.

Put the following file “r.html” onto a web server:

<!DOCTYPE html>
<head>
   <meta charset="utf-8" />
   <script type = "text/javascript">
      document.write(window.location.search);
      window.location.href = window.location.search.slice(1);
   </script>
</head>
<body>
</body>
</html>

Then you can paste links like this and they will forward into the Obsidian app:
http://yourserver.com/r.html?obsidian://open?vault=o1&file=Favorites

If you want this offline, you have to install a http web server on your Android phone. The following one works, but I cannot recommend it, it has annyoing ads: https://play.google.com/store/apps/details?id=com.sylkat.apache&hl=de&gl=US&pli=1
If you find a better working one, please post it here. :slight_smile:
The app “Tiny Web Server” (or something like that) does not work, because it doesn’t seem to support URL parameters. Using the “Termux” app to install Apache didn’t work because it asked for a rooted device.