Skip to content
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

Extend oCIS extensions for native clients (desktop and mobile) #59

Closed
michaelstingl opened this issue Nov 25, 2019 · 6 comments
Closed

Comments

@michaelstingl
Copy link
Contributor

As an example, we could have a look at The Swan Service (Jupyter notebook) that can be integrated nicely in the ownCloud web UI, but what about usage on native clients on desktop and mobile…

1) [Desktop] Support to open certain file types in 3rd party app in web UI

  • Swan extension registered in oCIS backend
  • Swan extension registered in Phoenix web UI (additional entry in / menu)
  • API needed to announce capability for this file type to the ownCloud desktop client
  • ownCloud desktop sync client then could add a custom "Use Swan…" context menu entry in the file explorer
  • ownCloud desktop client then should open https://cloud.example.com/apps/swan/5032562… in system browser

2) [iOS] Support to open certain file types in 3rd party web app in app-internal web view or in system browser

  • Swan extension registered in oCIS backend
  • Swan extension registered in Phoenix web UI (additional entry in / menu)
  • API needed to announce server capability for this file type to the ownCloud iOS app
  • ownCloud iOS app then could add a custom "Open in Swan…" action menu entry in the "More…" / / menu
  • ownCloud iOS app then should open https://cloud.example.com/apps/swan/5032562… in app-internal web view or in system browser (tbd)

3) [iOS] Support to open certain file types in 3rd party native app installed on the users device

  • Swan extension registered in oCIS backend
  • Swan extension registered in Phoenix web UI (additional entry in / menu)
  • API needed to announce server capability for this file type to the ownCloud iOS app
  • ownCloud iOS app then could add a custom "Open in Swan app…" action menu entry in the "More…" / / menu
  • ownCloud iOS app then should open 3rd party native app, using URI/URL scheme (swan://…) or something, to let the other app know how to access the file (needs detailed concept)

Imagine also a native DICOM viewer or similar apps for special use cases…

Some technical background:

Maybe related: https://github.com/owncloud/core/issues/33337

Related Epic: #54

@felix-schwarz
Copy link

From the iOS app side, this should all be doable - with one exception: since files live in the respective app's sandboxes, I'm not sure we can pass local copies of files without showing the share sheet. A quick round of research returned nothing relevant. :-/

refs pushed a commit that referenced this issue Sep 18, 2020
Refactor indexing of new entities into own function
refs pushed a commit that referenced this issue Sep 18, 2020
roleIDs into context helper + roles cache + roles cache update middleware
refs pushed a commit that referenced this issue Sep 18, 2020
Add permission endpoint for extracting one permission from a set of roleIDs
refs pushed a commit that referenced this issue Sep 18, 2020
run API tests from oC 10 in CI
@settings settings bot removed the p3-medium label Apr 7, 2021
@stale
Copy link

stale bot commented Jun 6, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 10 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Status:Stale label Jun 6, 2021
@stale stale bot closed this as completed Jun 16, 2021
@stale stale bot removed the Status:Stale label Jun 18, 2021
@michaelstingl
Copy link
Contributor Author

michaelstingl commented Jul 27, 2021

From an oC010 perspective, one approach would be, to announce to native clients via the capabilities endpoint (/ocs/v1.php/cloud/capabilities?format=json):

ocs > data > capabilities > appSupport
(proposal)

The following information is needed:

platform-scope mime-type query-api query-data-format ui-text
web application/msword /apps/collabora/link-api path Edit Word file in Collabora
web application/msword /apps/onlyoffice/link-api path Edit Word file in OnlyOffice
web application/vnd.ms-excel /apps/collabora/link-api path Edit Word file in Collabora
web application/vnd.ms-excel /apps/onlyoffice/link-api path Edit Word file in OnlyOffice
web-ios
desktop application/swan /apps/swan/link-api path, fileID Edit in Swan web UI
desktop application/msword /apps/collabora/link-api path Edit Word file in Collabora web UI
desktop application/msword /apps/onlyoffice/link-api path Edit Word file in OnlyOffice web UI
desktop application/vnd.ms-excel /apps/collabora/link-api path Edit Word file in Collabora web UI
desktop application/vnd.ms-excel /apps/onlyoffice/link-api path Edit Word file in OnlyOffice web UI
desktop-windows application/foo /apps/foo/link-api
ios

Desktop app (all desktop platforms) would add an entry to the right-click/context menu for all file types that are associated with the Swan web editor. When clicking this entry, desktop client would query the provided endpoint with the path OR fileID and, the app endpoint would return a link that points to the opened file view in the Swan web UI.

This way, also local applications could be opened. (needs an extension for this local application). foo://some/info/here would open local application that's associated with foo custom protocol.

Limitations of this approach:

  • We don't know if the local applications (desktop-word for example) is really installed on that machine
  • Menu entries can't be translated if fetched dynamically from the server

@michaelstingl
Copy link
Contributor Author

I'm not sure we can pass local copies of files without showing the share sheet

I was more thinking about passing a link to the resource, not the actual file itself.

@wkloucek
Copy link
Contributor

@fschade
Copy link
Contributor

fschade commented Jun 4, 2024

Please open again if the ticket is still relevant

@fschade fschade closed this as completed Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants