iOS Share Extension

Unfortunately I wouldn’t expect it to happen any time soon (although that’s just a guess).
The issue with share on iOS is that it requires writing platform code. This means that whoever develops the feature is required to have an apple development environment (i.e. a mac). This means that the Joplin project is basically waiting for a developer with a MacBook to stumble along and finish this feature.

As you can tell there is no way to get a good estimate here, but I’m sure this feature will come eventually!

You mentioned there's a workflow shortcut, could you share that so that we can use it also?

Because Drafts can have custom actions, would it be possible to create this workflow via the custom action? I start a lot of my notes in Drafts and would love the ability to shunt that over to Joplin.

I haven't learned Automator on MacOS, but I do have Alfred and Keyboard Maestro.

I made a Keyboard Maestro macro that activates Joplin, creates a new note, and then paste the content into the new note. I mostly start my notes in Drafts so I created an action that copies the draft document into the clipboard then triggers the Keyboard Maestro macro. This works well for my workflow.

The problem I have now is that Joplin adds the note to the last used notebook instead of Scratch. Is there a way to quickly jump to the Scratch noteboook in Joplin?

Goto Anything -> @notebook

1 Like

Awesome! That's what I'm looking for. I'll adapt the Macro to find a notebook tab and jump to that notebook if one is defined.

Thank you!

+1 for the possibility to add Jopin to the share menu in iOS - this is the one reason I haven't fully switched to Joplin yet!

Joplin is awesome but an iOS share extension would make it awesome+++. I wish I had the required background in iOS development.

iOS developer new to Joplin here. For me the share extension is a main use case for creating notes, so I started looking in to creating a share extension for iOS for Joplin.

I was able to get Joplin+React-Native running in a share extension with a few hacks. The main problem isn't React-Native, but the fact that on iOS the share extension is a separate process from the main app and it can't access the Joplin Database, (potentially the keychain and settings as well) as Joplin is configured currently. iOS has support for a shared container between extensions and the main app. Joplin could be updated to migrate the database, and any other shared data in the keychain/settings to the shared container, but this could be fairly risky, at least for someone new to the project to implement.

The easier, lower risk solution I thought of, is to make the share extension just serialize the share data from the user out the shared container and then open Joplin from share extension. Joplin would then read in the data from the shared container and use the React-Native UI, same as Android, to create the new Note. The only disadvantage here is the share extension doesn't have any UI and just basically passes the data to Joplin and launches it. While this isn't that smooth of a user experience, it may be the best for now.

2 Likes

Yes, I think this is the best option for now. First make it, then make it better, is a functional approach.
Are you working on this? I hope so!
Thanks

I was too busy in January to work on it, but hopefully I will have some time in February.

Just noticed this comment. The above is pretty much what Android does.

FYI I have a PR up with the share extension: iOS: Add share extension by sirnacnud · Pull Request #4492 · laurent22/joplin · GitHub

2 Likes

@thatchris @roman_r_m
while it seems that everyone in this thread knows exactly what you are looking for / trying to develop ... could you please tell me what exactly you want to share ?
notes, notebooks, links, attachements, whatever is highlighted ... all of the above ?

Can only say about Android (to be clear it's sharing to Joplin).
It supports any type of content: text will be stored as text, any other data will be converted to attachments.

So the fact that there are (still ... some ... ) problems with attachments on Android are due to the very implementation discussed above ?

Of course! This was the plan all along - to introduce more bugs under the guise of this feature.

2 Likes

On a more serious note though I feel a lot of bugs that have been reported for Android recently are due to changes in how permissions work, introduced in version 10.
Unfortunately, my phone is on Android 9 and I doubt it's going to receive an update, so there's not much I can do.
We can only hope that some else comes along who can investigate these issues.

You are probably right, just to focus always on the latest OS version doesn't help. On Abndroid a dev might have to cover v8, 9, 10 to make sure it works. But aren't there OS simulators for windows which allow you to choose your target / test platform for development ? (I am not an Android or iOS guy)

That's a good point regarding simulators. Last time I tried it was too slow to be usable, but I've upgraded my laptop since. Might give it another try.

The iOS share extension is out in the version on the AppStore!

3 Likes