I want to create Quick Links in Branch.io that redirect for example :
- either to my iOS list of app if the user is on iOS
- or to my Android list of app if the user is on Android
So I created a Quick Link in Branch.io.
In the "REDIRECTS" tab, I pasted my iOS url and Android url to my list of apps in the appropriate fields, and changes the type of these fiels to 'Web URL'.
My problem if that if the user has got my app on its device, it will open my app and not my catalog. It is because it is written on the 'REDIRECTS' page: 'If the app isn't installed, send users to: ...'
In my case, I want to send the users to my catalog even if the app is installed.
How to solve this problem ?
If you want to open the web instead of the app, please check out the web_only feature: https://docs.branch.io/pages/links/integrate/#open-web-instead-of-app
Related
Often when viewing a website on a mobile device you'll get a notification that a mobile app is available, or if you already have the app downloaded you'll have the option to open the URL in the app.
Is there a native way to do this or are these notifications always custom?
When users click on a link or download a file and the suggestion pops up to open the respective app, that's called deep linking. iOS labels it as Universal Links and Android uses App Links.
I need to open a third-party app from my react native mobile app. I understand that this is called universal linking on iOS and AppLink on Android.
I have done a lot of research for this, and I have been able to set up a link to the third party app on the app store. Now I just need to get my app to open up the app if the user has it installed. That requires the URI scheme of the other app, though.
My question is, how do I get the URI scheme to this third party app? Rather, how do I get the URI scheme of any app? I know the URI scheme of the twitter app is 'twitter://app', but the app I am trying to link to is way more niche than twitter or other popular apps, so there is no help for this sort of thing online.
Any tips?
Finding the URL scheme of an iOS app
Due to Apple's tendency for secrecy, it's not easy to find the URL scheme of an iOS app. But it can be done. Here's how I do it, using a Mac app called iMazing.
Launch iMazing, select a connected iOS device, click Apps:
In the footer of the window, click Manage Apps:
Select the app you're interested in , then select Export .IPA menu item. Note: You may need to download the app first.
The saved file will have the .ipa extension. Change the extension to .zip, and unzip the file. You now have a directory with the name matching the app's name.
Assuming "asana" is the app name, open the file "asana/Payload/asana.app/Info.plist" in a text editor, and search for a section that contains "CFBundleURLSchemes". Assuming the app contains CFBundleURLSchemes (they are optional), it should look something like this:
The URL scheme is in the <string>asana</string>, so the complete url scheme in this case is "asana://". Test that the URL launches the app by typing it into iOS Safari browser window. If it works, Safari should display an alert like this:
What About Apps Without CFBundleURLSchemes?
I haven't found a way to launch apps without CFBundleURLSchemes directly, but you can link to the app's page in the App Store, where the user can open the app with the Open button (or Get button if the app is not installed).
You will need to obtain the app page's URL from the App Store:
Open App Store, go to the app's page, click the share icon:
Click Copy Link:
The URL will look like this:
https://apps.apple.com/us/app/asana-organize-tasks-work/id489969512
Clicking on that link in Safari will bring up the app page in the App Store.
Maybe it is worth to start with some background:
There are various ways to deep link into an app, and it depends on the platform (iOS\Android\WindowsPhone...) and its version.
On iOS, up until version 9, the way to open an app was by using URI schemes, e.g. the one you added above: twitter://app. Each app declares the scheme that should be used. Therefore in order to deep link into the app you wish to open, you'll need to use the scheme that it declared. This is the same for Android until version 6.
Starting iOS9+, Apple introduced Universal Links as the method for deep linking. Here's some information: https://developer.apple.com/ios/universal-links/
In these versions, URI schemes won't longer work when using Safari browser (which is the iOS default browser) if the app is not installed. If the app is installed, however, URI schemes should allow opening the app, if everything is configured successfully. In Android there's a similar method called "AppLinks".
Having said this, the above information is for setting deep link for your app. I do not think that it is a common use case to open a third party app from your app - deep links are configured and used by the app owner (e.g. for publishing his\her app to engage users).
I would like to do the following with Branch.io but I don't know if it is possible.
I want to create a Branch.io link that will redirect to my catalog of app. So, this link will redirect to:
- something like https://itunes.apple.com/artist/idXXXXX on iOS
- something like https://play.google.com/store/apps/developer?id=MY_COMPANY_NAME on Android
Branch.io is implemented in all the apps of my catalog.
I want to add a 'catalog button' in all my apps that will send to my iOS catalog on iOS, and to my Android catalog on Android. The redirection will be done with my Branch universal link.
Some users will click on the button and install no app, others will install one or several apps.
My question is : is it possible to follow the installs after a click on my catalog button ?
Thanks
To confirm, you will have a catalog page in your primary app for both iOS and Android. Within this catalog page, you will have multiple Branch links that have different iOS and Android redirects corresponding to the multiple sub apps.
Unfortunately, you can only track the clicks on these Branch links. If you want to track the installs, you must integrate Branch into each of the individual apps as well, and use the Branch link associated with that app to track installs.
Is there any way to create a link within Branch.io which instead of loading the installed app, would instead bring the user to the app's page in the store where the user could review the app. This would be used in email marketing.
Amruta from Branch.io here:
If you want users to be directed to a specific page you can make the links as Web Only.
For iOS: When you create the link specify the $ios_redirect to your App page on the App Store and add $web_only: true to your deep link data. The Branch link thus created will redirect to the web URL you have specified as the iOS redirect (in this case the App Store page).
For Android: When you create the link specify the $android_redirect to your App page on the Play Store and similarly add $web_only: true to your deep link data. The Branch link thus created will redirect to the web URL you have specified as the Android redirect (in this case the Play Store page).
PS: For Android, if you have App links setup for your App clicking on the link will redirect to your App irrespective. For this to work, you should remove the App links configuration in your App and the Branch dashboard if any.
You can check the list of possible parameters for configuring links here.
Edit:
1. Add the $web_only parameter in the Deep Linking section
Set the iOS and Android redirect to the App Store and Play Store URLs respectively.
I am making mobile app using Sencha touch which will be bundled as native app and installed on devices. In my app on certain pages I want to add "share" functionality which is supposed to post some data to user's feed. While testing on browser I can to do that by opening a window with FB sharing url like "https://m.facebook.com/dialog/feed" or "https://m.facebook.com/sharer.php" and passing all related params as explained in https://developers.facebook.com/docs/reference/dialogs/feed/
But when this app is bundled and I share with this, user is moved to browser and cannot return to app because redirect_uri cannot point to app which is why I wanted to open this dialog within my app, probably in an iFrame. This is also not possible because these dialogs are not allowed to be embedded in iframe by META tags and in order to surpass it I have to do user login which again is another dialog which I cannot open in my app's iFrame.
I also looked at sample sencha app http://blooming-day-7830.herokuapp.com/ but it also takes user to separate login page instead of opening in-app dialog.
So my questions is how does hybrid apps connect with FB without moving out user to browser?
if you decide to use PhoneGap you can try the following two options. You will have to check for the iOS version before you switch your Phonegap call to. . .
Option 1 : for iOS before 6.0
Phonegap has a pretty nifty ChildBrowser plugin that you can use to load the FB share page without leaving the app for iOS 5.0 and below.
Option 2 : for iOS 6.0+
Facebook Share functionality has now been added to iOS. So all you have to do, is call a custom plugin class that you create, and call the standard FB share code using a basic Phonegap plugin call. You won't leave the app, the ChildBrowser doesn't have to show up, instead, you'll get the stock iOS-FB share sheet that will show up, you can add pictures, text, and so on, and post to facebook.