I have the requirement to launch an app when an sms or email link is followed. I have already been reading about URL schemes and already test that and it works, but the problem is that if the app is not installed on the device nothing will happen. I need a way to open a web url if the app is not installed, but I couldn't find a way of doing this...
Any idea?
Thanks
It can be done.
The way I would structure it is by having a redirect from a server you control.
You send the user a link that points to your server.
You try to launch your app using the custom URL scheme.
If it fails, you redirect the user to the app store so they can download your app.
Here is an interesting question with several ways to check if the launch attempted via your custom URL was successful.
I would insert a link to the website in SMS body.
Then I would write a script on the website which will either open a download link or open the app
This answer will solve your problem
Related
I am having a real hard time finding an answer to this. I know that the app manifest itself can exclude links, but I have an active bug that is affecting users and updating the app is not a fix for current users unfortunately.
The issue is that on our mobile site, we have a flow where it redirects to another domain, an then redirects back. On that 2nd redirect back, if our app is installed on the device, the app will briefly open before switching back to the browser. When this happens, the page breaks (as the 2nd redirect is actually a form submission (a POST) and the app can't forward that POST on.
Is there a way we can add a header or a param or something to tell iOS to not try a deep/universal link? Something to just use safari?
Not with headers
Unfortunately, the device will only make a request to the Universal Link if it does not find a matching AASA file on your device. It will perform a handoff to your app which is done on the local OS with no requests. Therefore, there is no way to check the headers of the request if the device recognizes it as a Universal link.
Same domain fix
The only case in which Universal Link will use the browser if the app is installed is when a is already on the Universal Link domain when they click the universal link.
Example: If a user is on example.com on Safair, they have an AASA on their device that has applinks:example.com, and they click a link that redirects them to example.com/item123, they will not open the app.
In your case, you leave the domain and come back. Your best bet is to figure out a way to redirect the user while keeping them on the same domain. I know that probably doesn't help a ton, but that's your best bet.
I am trying to have a link on my website that will open the app on the App Store, with some extra parameters, which my app can then use once it is installed.
The sequence would be similar to this:
User visits my website and clicks a link to install app on App Store.
User is redirected to the app store and installs links
App is launched with the extra parameters passed in URL in step 1.
Hopefully it could look something like this:
itms-apps://itunes.apple.com/app/id123456789?user=foo&page=bar
The main reason I would like to do something like this would be so a user can jump right to the same page they were on, and possibly also be logged in.
I did some research on this already, but only found stuff for affiliate linking (which maybe could be used for this) but this doesn't seem like the right option.
https://affiliate.itunes.apple.com/resources/documentation/basic_affiliate_link_guidelines_for_the_phg_network/
Any thoughts would be greatly appreciated, thanks!
Edit
It turns out this is called "Deferred Deep Linking", here are some similar threads I've found:
How to make deferred deep linking?
Deferred Deep Linking in iOS
You can do this scenario with 2 ways
1-) define URL scheme on your iOS app firstly.
For example, you define "dateApp" as a URL scheme.
After that, if you write on safari browser this adress "dateApp://" your browser should ask you should this page open on: "DataApp"? if this app installed on your phone
2-) Firebase Dynamic Links.
You should implemented related SDK and callback on your app.
After that you should prepare dynamic link from firebase dashboard
You should check this option if you don't want see preview page.
Note: firebase dynamic link option is more powerfull. Because if someone not install your app but clicked firebase link, redirecting AppStore. After installation process, if opening app in 2 hours, deeplink url cachted by firebase. So you can route appropriate page.
Firebase deeplink example for you :)
https://www.dateapp.com.tr/?page=CampaignDetail&p=78771
I have to create an iOS app, which needs to know a referral code right after the installation. The code comes from an email or from a link in the browser. The goal is to make the app have the referral code no matter it is already installed on the user's device or it is being installed by the clicking of the link.
What I know already:
I have to register an URL scheme with my app, for example myapp://
I have to handle opening by this URL, recognizing the referrer code from it (myapp://refcode=123)
I have to have a web service, which detects (with JavaScript) if the user's device can handle my URL scheme or not (like this: https://stackoverflow.com/a/6599773/511878)
If the app is not installed, I can send the user to the App Store to download it, otherwise I can open the app by this URL and transfer the information into it
What I miss: How can I immediately call this URL after installation?
I was sure this is impossible to do until this morning, when I've found that Apple's TestFlight is doing exactly the same. I've got an email containing an invite to some app, clicked on the link, and because I did not have TestFlight installed on that device so far, it brought me to the App Store, where I clicked install. The device installed TestFlight app. After this I've clicked the Open button in the Store, which immediately showed the invite for me.
I think the solution can't be that it recognized me, and picket up the invite from the server based on my user account, because I might have multiple invites, so it had to know which exact one to show.
EDIT: Video of this happening: http://gk.lka.hu/x/tf.mov
So the question is: How can I transfer information into an app which is being installed after a link is clicked without reclicking the link?
I'm a developer at Branch and we recently built this system for others to use. If you want to build a similar system from scratch, here is an example of what you'll have to do:
The web service you described above must capture some information from the user, such as IP address, OS, OS version, screen size, etc., before redirecting to the App Store. It should associate this with the link that was clicked, or at least the refcode from the link (http://yoursite.com/redirect?refcode=123).
After your app is downloaded, the first time it opens, send up the same info (IP Address, OS, etc.) up to your server. If your server sees these params and that they're the same as what you grabbed in step 1, it should pass back refcode=123 to your app.
Your app should then handle the 123 refcode however you see fit (e.g. open to the appropriate view controller, apply the referral code, etc.).
Hopefully that helps. It's definitely harder than it sounds to build from scratch..
I'm tryin to implement sending email or message with url to be open in the app but in case the user doesn't have the app install the url should redirect to download the app in the app store. For example:
1.- user1 sends email to his family with the url to load information in the app
2.- the family doesn't have the app install on there iOS devices and when they click on the url loads the itunes store to download the app. When they download the app the click the url again and the information is load it.
any of you knows how can implement something like this?
I'll really appreciate your help
The email should contain a link to a webpage for the content if possible. Then, that webpage should be designed so content can be opened in the app (see this question).
Since it is difficult to detect if the app is installed from a webpage, the webpage can have a link to install the app if it is not installed.
You are going to have to launch the app using the already suggested method:
window.location = "myapp://myparam";
Then you are going to need to check if that page launches or not (whether your app starts up or not). If it does not then you can launch a search in the app store by this means:
window.location = "itms-apps://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?media=software&term=(your company/app name)"
Instead of doing this search you could also just provide the link directly in the app store to your app. I see the hardest part being checking whether or not your app launches from the original attempt to launch your app through window.href, I don't know how to accomplish that check.
My url scheme looks like "foo://".
This works great when I type into the browser.
The application requires I send this link in an e-mail and the e-mail opens from there. How can I configure the url scheme to be recognized as a link? I tried doing http://foo:// but of course my browser caught that.
One solution is to ping my server http://foo.com/redirect_to_app. If there is a way to do this with the app only I would like to know.
If you put the URL as foo:// in the email body, then that is all you need to do. Of course it requires that the user reads the email using the Mail app on their iOS device and the user must have your app installed on their iOS device as well.
Your foo:// URL will mean nothing if the email is read on a non-iOS device or computer or if the user doesn't have your app installed.
This all assumes that your goal is for one user of your app to send an email to another user of your app and tapping on the link in the email will launch your app on the receiver's iOS device.
There is a way. You need to create a webpage and create redirect code(url scheme) to your app.
Check this out... Check if URL scheme is supported in javascript