Can we have multiple dynamic links point to single app? - ios

I want to know whether we can have multiple dynamic links to point to my react native ios app.
Say, I am using ab2ya.app.goo.gl/ already registered with my app, and I also have apple-site-association file setup aswell.
Now, for marketing purposes I would like to have another format of the dynamic link that looks more professional, like appname.page.link/.
But in xcode I can only setup one firebase url. How to use both the formats at the same time?

You can add multiple domain entitlements to your apps: https://developer.apple.com/documentation/security/password_autofill/setting_up_an_app_s_associated_domains
As long as both your app and the firebase console are aware of a domain, dynamic links should work!

Related

Is there a way to present users an option for which app to open when multiple apps use the same universal link? [duplicate]

I have two apps under same firebase project, those share the same deep link
How are links handled by the OS if more than one App can use the same universal link? How do I choose the app that is going to be opened to handle certain pages?
for example, both apps share same universal link https://xxx.app.goo.gl
how will it be identified to open user or manager app?
According to Apple, this is dependent on the ordering of your AASA file.
The order of the dictionaries in the array determines the order the system follows when looking for a match, so you can specify an app to handle a particular part of your website.
The app that is listed first in the AASA file will take precedence. You can check that by looking at the AASA endpoint: https://xxx.app.goo.gl/apple-app-site-association
You can also specify certain paths to be handled separately, but if both apps share the same paths then the one listed first in the AASA will open.

How to shorten a Firebase Dynamic Link using my own domain name

I'm trying to implement Firebase Dynamic Links in an iOS app. The goal is to have a clean URL for marketing purposes so folks can share links on social media. The idea is folks will share the clean URL that starts with my domain name.
When the app is installed following a click on that link, we want to be able to track who referred the app install by looking at the payload delivered by Firebase. I think this goal is similar to Firebase's use case to convert web users to mobile app users.
An example link I would like to provide for sharing on social media is: http://example.com/my-payload-here
I've tried several cases but I'm not able to get the behavior I'm looking for in any case. Has anyone implemented this successfully before?
Here is my test procedure:
Uninstall the app
Send the link to be tested in an iMessage to myself
Tap the link on my iOS device (not using a simulator)
Install the app from the App Store
Launch the app after download completes by tapping "Open" button in the App Store
Below are my findings:
Short link generated from the Firebase Console (https://xyz.app.goo.gl/ABCD) - Link opens in App Store. I install the app. When I launch the app after installing, the payload is not delivered. If I quit out of the app, go back to the link in iMessage, and launch a second time, the payload is delivered.
Long link identical to the "Long Dynamic Link" from the Firebase console for the link generated in #1 (https://xyz.app.goo.gl/?link=http://example.com/my-payload-here&isi=12345&ibi=com.example.MyApp) - behavior is identical to #1
Short link using my domain (http://example.com/redirect/my-payload-here, configured to 301 redirect to URL in #2) - Opens in App Store. I install. When I launch the app after installing, the payload is not delivered. If I quit out of the app, go back to the link in iMessage, and launch a second time, the link still goes to the App Store.
Some questions I have:
Why isn't the payload delivered on the first launch for cases 1 and 2?
How can we make this launch the app and deliver the payload instead of going to the App Store?
I've also consulted the Firebase flowchart for the deep link in case 2.
Google Firebase team added support for custom subdomains to Dynamic Links.
You can now specify up to five custom page.link subdomains for your Dynamic Links. Short links using these new custom subdomains look like the following example: https://example.page.link/abcXYZ
Firebase Dynamic Link domains assigned on projects couldn't be deleted at this time.( firebase team is working on it.)
You can now whitelist the URL patterns that can be used as a Dynamic Link's deep link (link) or fallback link (ifl, ipfl, afl, ofl). If you define a whitelist, Dynamic Links won't redirect to URLs that don't match a whitelisted pattern.
You can try both of these features in the Firebase console.
This is not currently possible with Firebase. If you need whitelabeled URLs, you either need to build it yourself or use a more powerful link platform like Branch.io (full disclosure: I'm on the Branch team).
To answer your questions specifically:
I have implemented Firebase Dynamic Links in a testbed app and can confirm that linking through installation the first time does work for both long and short URL variants. There is likely something wrong with your AppDelegate config, so we can take a look at that if you want to share code.
Firebase does not support custom domains at this time. In theory (if you can solve the first issue above) you could get this working for first install by using a redirect like you have tried. However, you'll never be able to get it to launch the app with Firebase link data once the app is installed. This is because Universal Links work based on the domain of the link, and don't even request the web destination. Even if you enable Universal Links manually on your own domain, the app will open immediately without ever calling Firebase and the link data will never be set.

Integrating Password Manager Into iPhone App

I've noticed a few iPhone apps have started to allow you to use your password manager to sign in. Slack is an example of this:
It looks like there's a link that's triggering a partial version of the share toolbar in Safari which lets you access your favourite password manager's widget. That's all I've been able to figure out so far though.
My question is, how have they got this functionality into their app? I'm primarily developing things using React Native, but if it needs a custom component then that's not a problem.
This is now supported natively by iOS 12+ (and by react-native 0.60+) without the need for an extension.
Documentation for enabling it on iOS is located here on Apple's site.
TLDR is to set the UITextContentType values of .username and .password for your inputs and, optionally, add an associated domain entitlement so your app can share passwords with your website.
The prop for enabling it in React Native is documented here. TLDR there is to provide an autoCompleteType on your TextInput component. The two OSes should handle that properly, though again you will have to add an associated domain if you want to share passwords between your website and app.
You can take a look at generic-password-app-extension which gives you access to password managers. It's provided by the creators of Last Password and 1Password.
You'll obviously need to wrap it with a native component so you can trigger it from your JS code.

How to share a link from the app using other applications

I want to share a link from my app using other applications installed on my iPhone such as Gmail, Facebook, DropBox, WhatsApp etc. In android there is a straight way to do so, just fire an intent and it automatically shows the installed apps through which we can share whatever we want. Is there any such way in iPhone ?
Thanks!
On iOS , app is more separated from each other. The only way to pass data from one app to other is using the URL mechanism. As one example, an app register url scheme "open-me://",you invoked openURL with "open-me://my-link" then that app will launched. That app will define the detail of the URL so it could understand the content.Continue with the example we are using, the text you passed could be either "open-me://A?data=my-link" or "open-me://A?message=my-link". So there are no general solution for all apps.Typically third party app will provide a SDK to make these things easy.
If you don't mind using a kind of large third party library, ShareKit is a good choice. It supports quite some apps.
If you want to know more about this topic,for example sharing files between app. You could start from reading the class reference of UIDocumentInteractionController.This UI component will show a list of app installed on your device which support the URL scheme.

Is there a list of iOS apps that can be called using custom URLs?

It is possible to launch your own app via custom URL scheme as described at http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html for example. Is there a list of the apps that use this mechanism somewhere already? A list of custom URLs available to date? If you have or know an app that uses this mechanism, adding it here will also help.
See http://wiki.akosma.com/IPhone_URL_Schemes
http://www.onemillionappschemes.com, an open source Custom URL scheme site where you can contribute URLS (by scanning your iTunes library) and where you can pick up everything that has been found so far

Resources