For example, i have case in my flutter app when user can recover his password.
In that case user will receive link on e-mail, and i want by clicking on that link, my flutter app will open, and route to specific screen.
You'll want to view this from the perspective of: How do I open my iOS/Android app from a URL, ie. App Deep Linking.
They each have their own respective implementations:
android/app-links
apple/allowing_apps_and_websites_to_link_to_your_content
Or you can go with more comprehensive SDKs that are capable of doing both for you:
Firebase Dynamic Links
Branch.io Deep Linking
There is a nice plugin for this,
https://github.com/avioli/uni_links
it also has a detailed explanation on how you need to configure iOS and Android for it to work (which is the hardest part imho); another nice source of information is this blog post
So here , you must use a dynamic link.
The best solution is the use of Firebase Dynamic Links .
One of the advantages of Firebase Dynamic Links: Convert mobile web users to native app users
With Dynamic Links, you can seamlessly transition users from your
mobile website to the equivalent content within your app. And because
the links survive the app install process, even new users can pick up
where they left off on your mobile site without missing a beat.
Another solution is to switch to native solutions: Android and iOS.
You can use app_links, that supports Android App Links, Deep Links, iOs Universal Links and Custom URL schemes handler (desktop included) for Android, iOS, macOS, web and Windows.
Related
I am working on a flutter app. We see that some apps like Facebook opens on clicking on the default domain name. Default apps for some domain names.
For example, clicking on facebook.com/foo opens the Fb application. How can we enable this in a flutter app? What is basic working happens there? Is there any code needed to make it happen on a flutter app?
you can use App-link / deeplink in your app to launch from a link .
App Link, Uni Link and deep link will help you a lot .
basically you have to analyse you requirements because you can achieve this by dynamic link, deep link and app link and these all look same but have their own functionalities so choose wisely which one is best for you.
you can use firebase dynamic link check this link
https://firebase.flutter.dev/docs/dynamic-links/overview/
as for the title.
I have to place a simple link to an app on a website. The app has 2 versions, ios and android, so I should put 2 links, one to itunes and the other to gplay. ok.
Is there a way to create a single link that will send the user to the proper store?
User Firebase Dynamic Links which are match for your scenario.
As per firebase documentation:
With Dynamic Links, your users get the best available experience for
the platform they open your link on. If a user opens a Dynamic Link on
iOS or Android, they can be taken directly to the linked content in
your native app. If a user opens the same Dynamic Link in a desktop
browser, they can be taken to the equivalent content on your website.
Source: https://firebase.google.com/docs/dynamic-links
Firebase dynamic links is one way. I would like to recommend Branch.io, they do the same but more efficiently and the links that are generated don't look like spam. I did a huge study comparing both and found Branch to be better.
One cool thing, they even handle desktop deep linking i.e. they enable users to send the app link as an SMS from a custom designed page that gets loaded if they click the link on a desktop machine.
I want to create a dynamic link with two different original links.
One original link for Android, e.g: android://mePage/account
One original link for ios, e.g: https://mePage/account
From the docs of Firebase Dynamic-Links, I found there is a optional parameter al, and al=android_link.
So I create a Dynamic Link by manually constructing a URL:
https://myapp.app.goo.gl/?link=https://mePage/account&al=android://mePage/account
But maybe I misunderstand, it doesn't work.I have no way to resolve the android link from the al key.
So:
What does the al parameter really mean?
Any way I can acquire the parameter?
If it does not work, is there any way I can create a Dynamic Link with two different links?
There is a image to show what I saw.
And I found some extra information from another page.
There is no al parameter, did you meant afl? afl specifies the link, where navigation will happens if your App is not installed on Android. So that instead of navigating to PlayStore you can navigate to your page.
Answering your question about Android and iOS specific deep links: we do not have such feature. The same deep link will be passed to Android and iOS Apps.
If you want to separate the data for your Apps, you can use deep link constructed like this:
https://mePage/account?ios=<ios specific base64 data>&android=<android specific base64 data>
Than you can wrap this deep link inside Firebase Dynamic Link.
Not sure this provide enought value, but I do not know your requirements.
If you feel that you need this feature and Firebase Dynamic Links do not support it, feel free to open support ticket or describe your use case here. We always open to improvements and new feature suggestions.
Update
For those who are still looking like me,
as per the docs, https://firebase.google.com/docs/dynamic-links/create-manually
You can specify a different fallback link for IOS/Android using IFL/AFL params.
ifl
The link to open when the app isn't installed. Specify this to do
something other than install your app from the App Store when the app
isn't installed, such as open the mobile web version of the content,
or display a promotional page for your app.
afl
The link to open when the app isn't installed. Specify this to do
something other than install your app from the Play Store when the app
isn't installed, such as open the mobile web version of the content,
or display a promotional page for your app.
We have several landing pages that link to Google Play and iOS App Store. I would love to know the landing page that a person came from within the app code. I have searched around and can't find any clear answer. Lots of gray area.
I just want to access the landing page URL in Java or Swift.
I realize iOS and Android are two separate beasts. But does anyone know how I could achieve this?
You will need to use Firebase Dynamic Links this helps you create various links using various alternatives as shown in this quote from the official Firebase source:
You create a Dynamic Link either by using the Firebase console, using a REST API, iOS or Android Builder API, or by forming a URL by adding Dynamic Link parameters to a domain specific to your app.
Then your app can access the link in code using Java or Swift and the link will work even if the user has your app already in their phone and you can set a logic to handle that too and the links are also automatically direct the user to AppStore or PlayStore depending on which device is used.
Dont worry about whether the link will work for both Android and iOS and you can use the api to access the link as this quote says.
With Dynamic Links, your users get the best available experience for the platform they open your link on. If a user opens a Dynamic Link on iOS or Android, they can be taken directly to the linked content in your native app. If a user opens the same Dynamic Link in a desktop browser, they can be taken to the equivalent content on your website.
In addition, Dynamic Links work across app installs: if a user opens a Dynamic Link on iOS or Android and doesn't have your app installed, the user can be prompted to install it; then, after installation, your app starts and can access the link.
You can get more information on dynamic links here and check if it will solve your problem.
So I'm trying to figure out if it's possible to deep link a user who does not have the app currently installed. Here's what I'm trying to do:
1) User clicks deep link on website in mobile browser.
2) User is taken to the app store to install the app
3) Once installed, the user is taken to the deep link to specific content within the app.
The closest thing I've found so far is with Android App Install Banners, but that's not exactly what I'm looking for. Is this even possible?
Here's a link with the Android App Install Banners near the bottom of the page: https://medium.com/#ageitgey/everything-you-need-to-know-about-implementing-ios-and-android-mobile-deep-linking-f4348b265b49#.evsxzudwj
What you are trying to accomplish is known as deferred deep linking.
Vanilla iOS does not support deferred deep linking at all. Android can do it with the Android Google Play referrer, but it is unreliable and doesn't work at all from Chrome (the most popular Android browser by far).
To do this, you'll likely want to investigate a (free) third-party service like Branch.io (full disclosure: I am on the Branch team) or Firebase Dynamic Links. The Branch platform abstracts all the technical details and edge cases away, so all you need to worry about is defining a set of key/value parameters (for example: articleID: story123) when you create a link. Branch makes sure those parameters are returned to you inside the app the first time it launches after the user clicks the link, whether or not the app was installed when the link was clicked. You can then use the values to route/customize however you wish.
For a full explanation of what is involved in building this yourself, try this blog post.