nextcloud / desktop

💻 Desktop sync client for Nextcloud
https://nextcloud.com/install/#install-clients
GNU General Public License v2.0
2.97k stars 784 forks source link

Custom Nextcloud protocol on Desktop #1321

Open signalkraft opened 5 years ago

signalkraft commented 5 years ago

First off: I would like to contribute this, if interest is there. That's why I put this request in Github, even though it does not fit the bug template. I hope that's the right place for it?

My feature suggestion is to register a custom protocol such as nc:// in the desktop client, similar to the intents that are already being used in the Android app AFAIK. Another example are magnet URIs.

A custom Nextcloud app would then generate these custom URIs and hand them over to the desktop client on click in the browser (or an email) through OS-specific URI-handlers. On first glance, this would require these handlers for the desktop client:

Admins should be able to configure the behavior of link sharing:

Hybrid would generate links similar to OneNote's when copying pages from the desktop client: onenote:https://...sharepoint.com/.... Web View: https://....

Another configuration option could control whether the file should be opened over WebDAV or in the local file system (which would need to handle unsycned files / folders).

The resulting UX should especially improve life of employees in companies or other teams that share links via email or Slack. In my experience the current workflow is close to this:

Along the way authors might misunderstand public / private URLs, might not find the share button in the web / desktop UI and just copy their local path or the browser URL. Recipients might download the file from the UI and work on a local copy that isn't going to be synchronized, or they might not find the local file because it is not synced yet.

The new workflow would be:

This avoids confusion about the location of the file, it encourages users to work on sycned copies, and it isn't OS-specific - such as WebDAV links I can send to my Linux-using colleagues, but not Windows users.

Another nice-to-have feature would be fallback to the browser app through custom protocol handlers: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler

That would mean that the custom URI has to start with web+....

Please point out if this idea suits the scope of the desktop client, or if I should contribute this as a standalone app / addon, of if there are existing discussions about this that I couldn't find.

jospoortvliet commented 5 years ago

Very interesting idea! @jancborchardt @nextcloud/designers probably have thoughts about it ;-)

Thanks for offering to implement it. Would you be able to do that cross-platform, you think?

jancborchardt commented 5 years ago

This would be the call of @rullzer @MorrisJobke I assume?

Design-wise my first thought is that it should be called nextcloud://… instead of cryptic nc://… ;)

mgallien commented 3 years ago

@signalkraft are you still interested to work on that ? That could be really interesting to get.

signalkraft commented 3 years ago

@mgallien interested yes, but in my work we've since switched off of Nextcloud. One of the reasons was that editing files locally from links was much more complicated than in Sharepoint. So I'm not likely to find the time soon.

mkrecek234 commented 3 years ago

Would be MUCH appreciated. Exactly what is required for proper collaboration on all possible file types and editing applications👍🏼

mgallien commented 2 years ago

@tobiasKaminsky interesting future feature

tobiasKaminsky commented 2 years ago

A bit easier approach, and therefore faster to implement might be: Having an "open locally" button on public links, which then uses nextcloud://server/fileId to pass it to Desktop.

Downside is that user has to go via web.

bbceg commented 2 years ago

A bit easier approach, and therefore faster to implement might be: Having an "open locally" button on public links, which then uses nextcloud://server/fileId to pass it to Desktop.

Downside is that user has to go via web.

Seems like a good MVP to me. Can always improve on it later when time permits...