I have setup a firebase dynamic link like explained here https://www.youtube.com/watch?v=sFPo296OQqk
When I tap on my dynamic link via Notes app, it opens my app as expected.
But when I tap on the dynamic link via gmail app on iOS - it just open the Chrome Browser on iOS and redirects me to the fallback web URL. It does not open the app.
Any help is appreciated.
I believe the iOS Gmail app allows you to select whether links will open in Chrome or Safari. When Chrome is selected, Universal Links (which is what Firebase dynamic links piggyback on) do not work. You'll need to somehow open a web page with the link and then present a button for users to click that will open your app. At Branch.io, we use our deepviews feature for this.
For more info, see this list of apps that support Universal Links.
You should follow the below link.This will definitely fulfill your query.
Firebase dynamic link doesnt work in safari swift
Related
Senario: User scans a QR code with a unique universal link into our app to "redeem" their code.
They scan the code which goes to a webpage with a link to download the app.
The user downloads the app.
Returns to the web page and there is a link within the page which is the same link as the QR code.
We assume tapping the (same) URL would trigger the universal link but it does not.
The universal link works fine from email or other apps (after its been installed)
How can we fix this bad UX, is there a HTML component or redirect we need to consider when tapping the basic link on the Web page. How can we make the link initiate the "deeplink" into the app now its installed. The banner at the top is displayed but its not the ideal flow.
The user cannot scan the QR code again - they must go through the download and "reopen" app in one flow.
Universal links do not trigger in Safari. This is intentional behavior confirmed by Apple engineers in the forums (sorry, don't have a link right now). Their reasoning: if you're already in the browser eco-system you usually do not want to be redirected to an app, but want to stay in the browser.
What you can do is have your app implement a custom URL scheme, and your web page can then check if your custom URL scheme is supported and open it.
I am implementing Firebase App Indexing as mentioned in official firebase documentation here: https://firebase.google.com/docs/app-indexing/ios/app.
The universal links are enabled and work fine for search results from different browsers like Safari and Chrome. They also work for other applications. But when I tap on a search result from the Google Search App in iOS. It does not take me to my app. Also on long pressing a link in the Google app does not provide an option to open link using my App. This option is however shown when I long press on links from other applications.
Does it have something to do with the Google Search app disabling the universal links deliberately. Is it possible for individual applications to prevent Universal Links from opening other applications?
Or does Apple apply restrictions itself for certain apps?
Indeed, some apps disable the capability of deep linking using Universal Links. Some notable examples: Facebook, Instagram.
Some of these apps allow deep linking via URI schemes (the old iOS 9- way of deep linking), but there is no promise that this behaviour will be persisted.
I'm guessing most of these apps would like to have the user stay within their own in-app browser instead of switching to another app.
I never tried the Google Search app, but if your universal link works perfectly in Safari and not in the Google Search app, that may be the case. In that scenario you'll need your click domain server to redirect the user to the store or some landing page, based on the User Agent of the incoming browser.
I would like to track button clicks in emails using Google Analytics. Let's say I would like the button to have a Universal Link, which when clicked, will open an iOS app directly with no browser redirect. (https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html)
However, if my URL is a Universal Link, i.e. www.xyzxyz.com/openApp?campaign=promo&source=email, and an email recipient clicks the link from their iPhone with the installed app, no call is made to the server, and therefore the click is not tracked.
Has anyone experienced a way of tracking Universal Link clicks?
Universal Links are handled on the frontend by the device without ever interacting with a server if the app is installed. The AASA file is stored on the device at install and allows the device to check whether the link can open the app before passing the link onto safari. If the app is not installed and the link is passed onto Safari then the Google analytics tags will be processed. The only way to accomplish this is to send the GA request from the app if you register that a Universal Link was clicked.
I recommend looking into a deep linking service like Branch. They have a Google analytics data integration that will handle all of this tracking for you.
I have shared a branch link to Skype.But when I click on the link, it redirects to the App Store rather than opening my installed application.I have the link working for email,twitter etc ..
Alex from Branch.io here: unfortunately this is the expected behavior.
Skype is one of the apps that uses SafariViewController so this is an iOS limitation from Apple. Links in Skype can't open other apps via Universal Links directly from the chat feed, and this is not an issue specific to Branch.
However, Branch does have a workaround available: our deepviews feature sends users to a web landing page with an 'open in app' button. This does work, and is currently the best option available until Apple updates the Universal Links implementation to work properly with SafariViewController.
I am trying to implement Branch marketing links in my app. I want for example to be able to create a link to share with users that will route them to a particular screen in the app. I noticed from the Branch docs that for some apps the link just opens the app store and not the actual app (even if it is installed). Being based in Asia I have the feeling that most of our customers will be wanting to share the link via an unsupported app such as Line. If a user is redirected to the app store via the link and then taps “open app”, what happens? Is the link meta data lost? Does the meta data only remain if the link is opened in an app such as mail or notes?
Alex from Branch.io here:
This list in the Branch documentation gives a partial list of apps that support Universal Links, but unfortunately it is not complete. We've tried to cover the most common apps.
Line is using a custom webview (not SFSafariViewController). It doesn't support Universal Links for the initial click, but this is one of the edge cases where Branch can detect the originating app and do some custom behavior. For Line, we trigger your app's URI scheme. This means the behavior your users see when clicking a Branch link from within Line is the same as Universal Links, even though Universal Links isn't actually the protocol being used.
If you want to handle other apps where Branch doesn't have a workaround like this, you could try enabling the deepviews feature. This will cause the link to open a content preview with a button to launch the app (or forward to the App Store if not installed).
When a user with the app already installed clicks the Open button on the App Store page, all the meta data is preserved and they will still be deep linked. Branch doesn't know (or care!) what happens between when the user clicks the link and the app launches, so that gives you plenty of flexibility.
Universal Links have some restrictions - not from Branch but from Apple's implementation. One of these restrictions is Universal Links cannot be opened from SFSafariViewController.
From Branch's docs, Line is not explicitly mentioned but other popular messaging apps may be of interest. I don't have Line myself but whether Line launches websites in it's own browser or the Safari app may give you a clue.
Facebook Messenger - works conditionally
WeChat - works conditionally
Twitter - works conditionally
LinkedIn - works conditionally
Any app using SFSafariViewController - works conditionally