server icon indicating copy to clipboard operation
server copied to clipboard

Deeplink support for iOS app

Open mpivchev opened this issue 2 years ago • 1 comments

This is a request from a support ticket, more info here: https://github.com/nextcloud/ios/issues/2479

Currently we do not support deeplinking between the website and the iOS app. Deeplinking already works on Android.

For this to happen, we need 2 things:

  1. Add an associated domain file to the site: https://developer.apple.com/documentation/xcode/supporting-associated-domains
  2. Add navigational context to the smart app banner. We already show the banner, but it does not have context navigation. Essentially, when pressing the banner to open the app, the app should navigate to the current directory we are in on the site. More info here: https://developer.apple.com/documentation/webkit/promoting_apps_with_smart_app_banners#3701576

mpivchev avatar Jun 21 '23 17:06 mpivchev

@AndyScherzinger @juliushaertl This is needed for a support ticket, so it would be great if it got higher priority.

mpivchev avatar Jun 22 '23 07:06 mpivchev

  1. Add an associated domain file to the site: https://developer.apple.com/documentation/xcode/supporting-associated-domains

This will then only work with nextcloud.com, but not e.g. with your private cloud at cloud.sky.com ?

tobiasKaminsky avatar Jun 27 '23 05:06 tobiasKaminsky

@tobiasKaminsky Good catch. That is correct, which means clients need to set that up on their sites. I think the best thing we can do in that case is provide a template for them that they can easily change.

Still, it's good to set that up on our own site for testing and use internally.

mpivchev avatar Jun 27 '23 08:06 mpivchev

Server side would be possible. But I read this https://developer.apple.com/documentation/xcode/supporting-associated-domains#Add-the-associated-domains-entitlement-to-your-app as that each website needs to be addressed within our app. Which is then not possible for dynamic clouds (e.g. cloud.sky.com), but only for branded clients, where we know the server domain in advance?

tobiasKaminsky avatar Jun 27 '23 08:06 tobiasKaminsky

Server side would be possible. But I read this https://developer.apple.com/documentation/xcode/supporting-associated-domains#Add-the-associated-domains-entitlement-to-your-app as that each website needs to be addressed within our app. Which is then not possible for dynamic clouds (e.g. cloud.sky.com), but only for branded clients, where we know the server domain in advance?

For branded clients with known domains it's easy to just add the file, yes. For dynamic domains it is probably going to be harder, maybe they can use a script to create this file for each new domain.

mpivchev avatar Jun 27 '23 09:06 mpivchev

Also, apparently it's possible to use wildcards: https://developer.apple.com/forums/thread/47315

mpivchev avatar Jun 27 '23 09:06 mpivchev

But it also needs to be listed in app:

To set up the entitlement in your app, open the target’s Signing & Capabilities tab in Xcode and add the Associated Domains capability.

So we cannot to this for "any" server out there?

tobiasKaminsky avatar Jun 27 '23 11:06 tobiasKaminsky

But it also needs to be listed in app:

To set up the entitlement in your app, open the target’s Signing & Capabilities tab in Xcode and add the Associated Domains capability.

So we cannot to this for "any" server out there?

Yes, most likely not. Even in the best case scenario some additional setup from clients/users will be needed.

mpivchev avatar Jun 27 '23 14:06 mpivchev

--> closing for now here. If at all this will be a branding option.

tobiasKaminsky avatar Jun 29 '23 06:06 tobiasKaminsky