Custom URL scheme embedded in an SMS on iPhone - iphone

Has anyone been able to successfully embed a custom url scheme in an SMS (for example someApp://), such that the iPhone upon receiving the SMS creates a clickable link to launch an app?
There are various questions similar to this out here, however, I have not seen a working solution.
Thanks

In general a custom URL scheme is the way to solve this problem. However, this is complicated by the fact that in iOS 5 (and up through iOS 5.1.1 based on my recent testing), Apple introduced a bug into their Messages app so that custom URLs received via SMS are not recognized as links.
See Custom URL scheme not recognized as link in SMS app(only in iphone 4 iOS 5.0)

You have to create URL scheme which starts with http, https or www.
but http:// and https:// will not work in URL scheme, so If you want create a click able link, you have to set your URL scheme with www.
For eg. www.myapp then the link which can open your app will be www.myapp:// but in this case only www.myapp will be click able and :// will not be click able.
For this use this format for URL scheme
www.<characters1>.<characters2>
www.my.app //example
Now use this format to open your app with click able URL:-
www.<characters1>.<characters2>://<anyThingYouWantToAppend>
www.my.app://open //example
www..:// is enough to open your app, but we are appending anyThingYouWantToAppend to create click able URL.

In my case on iOS 6, the link is not blue if sent from a custom sender ie text instead of a number. As soon as we started using a shortnumber as sender instead of a custom name, it was recognized as a link.

Assuming you have defined a custom url scheme as someApp:// you create a link in an SMS as follows:
"someApp://Myurl"

Related

App Store/Play Store redirection if App is not installed on ionic App

I have implemented deeplink for my ionic v1 application and also implemented universal link for same. I also checked so many links to implement App store redirection functionality.
Most of the link suggest to implement javascript code which first check device and based on ios/adnroid/window it will redirect to particular store but let say I will create that javascript code look like below
const iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);
if (iOS) {
window.location.href = "temp://itunes.apple.com/us/app/...";
}
but where should I put this file so when user click on deeplink it should redirect to particular this file and redirect to App Store/Play Store?
Let say I want to give my deeplink to some other server for which i don't have any access then what?
is there any other param or attribute we can set like fallback url by which when app is not installed it will automatically going to that particular link?
Any answer would be great help.
Thanks.
Usually it works that way:
You place a link on the website where you want to advertise your app. That link has a click tracking domain that points to your server. e.g. click.example.com/....
Upon clicking, if the app is installed, Universal Links would ensure that the app is opened. This is done by iOS (only if you configured Universal Links correctly, see https://developer.apple.com/ios/universal-links/). If the app is not installed, a redirect is done to your click tracking domain. This is where your Javascript logics should apply, so basically you need to reply to the request with a 302 redirect to an HTML file that contains the redirection logics (as in the example above). In that server response you can handle any fallback URL you want to use.
By the way, to make Universal Links work, anyway you had to host the AASA file, so you probably already created a server, so you can use it for the case where the app is not installed.

How to set FacebookDisplayName?

I recently hit a problem while trying to integrate FaceBook in an iOS app.
Fortunately I found the answer here:
Facebook SDK: app not registered as a URL Scheme
This is where I have a question:
In the post mentioned above the answer gives the following as the second step:
Create a key called FacebookDisplayName with a string value, and add the Display Name you configured in the App Dashboard.
How do I write this Display Name in case it is changing according to the user Language Settings?
I tried ${DisplayName} or ${CFBundleDisplayName} but I have no confidence I am using the right syntax and name.
In the InfoPlist.strings you can add
FacebookDisplayName = "AppName";
for all the languages you have implemented. This way it will be consistent to the facebook configured details regardless of what your app is really called on the device.

Opening a custom url link in Safari/GMail

I am sending a custom url scheme link inside an email:
[body appendString:#"<div><button type=\"button\">Open in App</button></div>"];
This successfully adds a button in the email I am sending which, when tapped, opens my app (if it is installed).
This works fine when I open the email in mail.app on the iOS device, but doesn't do anything when I open the mail in Gmail (both via Safari and the native GMail app).
Is this a limitation of the framework? Or should safari be able to recognize these links?
The best solution I've found for this is to link to a PHP script on a web server that takes parameters and redirects the request to your custom URL scheme within Safari.
This link will be in the email:
http://myserver.com/_script.php?parameter=one
This then redirects to:
myappscheme://open/?parameter=one
It does mean you have to open Safari to process the link, but given that you're opening the link from the GMail app anyway, I think thats a minor issue to get this working correctly.

Subscription to webcal event in iOS Safari not working but works on OSX

I have exported an event in the .ics format from iCal and linked to the file from an event site i am creating.
When i navigate the link in Chrome on my MacBook it correctly opens iCal and subscribes to the event.
However when i navigate to the same page in iPhone Safari and navigate the link it retrieves an error where it says it cannot subscribe to the calendar.
Am unsure as to why it is working in one and not the other:
http://tfma2012.valtechdigital.co.uk/
The calendar location is as follows:
webcal://tfma2012.valtechdigital.co.uk/calendar/TFMA.ics
Instead of using "webcal://" as the address, simply use "http://"; it worked perfectly for me on both my Mac and iPhone when I tried that.
Just put this code and check
[[UIApplication sharedApplication]openUrl:[NSUrl urlWithString:[NSString stringWithFormat:#"webcal://tfma2012.valtechdigital.co.uk/calendar/TFMA.ics"];
If you use http:// so usage of Content-Type: text/calendar HTTP header considered (Not tested) personally You can use same page name with text/html header for desktop browsers to show "how to" manual.
If you use webcal:// it is also well supported on iOS, the header must be Content-Type: text/calendar (Tested, works on iOS 13)
You can go even further and show url like webcal://example.com/schedule/?staff_id=1245 encoded in QR code. On camera mode iOS device will suggest you to subscribe to the iCalendar feed.
Most likely the link is just outdated. Open your calendar, turn off the public link and turn it on, the new address will work 😉

Get itunes link for app before submitting

I read in another post that you can submit the app without the binary but I based on what I have seen this is no longer possible. It seems you cannot submit without the binary and the binary is submitted through the application loader. Is there any other known way to get the itunes/app store link to my app before I submit the binary?
The manual way:
Your should copy your "Apple ID" from iTunes connect and use this link:
http://itunes.apple.com/us/app/APPNAME/idXXXXXXXXX
Would open the US store ("APPNAME" is that app name and XXXXXXXXX is the "Apple ID". You can use more general method (Recommended):
http://itunes.apple.com/app/idXXXXXXXXX
and replace "XXXXXXXXX" with your "Apple ID" (from iTunes connect - after creating the app there).
Pay attention that those would open safari if you won't preprocess them, You could also use itms:// to open iTunes directly.
The easiest way to do this now is through iTunes Connect. Once you create an app there is a link to 'View in App Store'. Even if you haven't uploaded a binary yet you can click this link to get your App Store link.
The other answers work too but this generates your url for you. This is the URL it creates with my info removed (replace app-name and the numbers after /id with your own):
https://itunes.apple.com/us/app/app-name/id12345678?ls=1&mt=8
Once you create application in iTunes for submission under App Information tab click in View on App Store you will get app link.
Option 2: (In new update this is no longer available) you can create as below
https://itunes.apple.com/in/app/your-appname/id123456?mt=8
Note : Just replace app name and numbers after /id with your app-id in above link
Use this url example and just change your Apple ID at the end! Replace only the numbers!
https://itunes.apple.com/app/id111111111
You can find the value of your Appple ID by login into your App Store Connect and navigating to 'My Apps' under the 'App Information' -> 'General Information' -> 'Apple ID'
This url format works always and it is particularly helpful if you need the link before you publish your app
The standard URL is:
http://itunes.com/apps/yourlowercaseappname
As of today and for reference, I would say the best option is #"http://itunes.apple.com/app/%#/id%#?mt=8", inserting:
your application lowercase name,
your application ID.
In fact, this is essentially the link you can get for your application on your app's page in iTunes Connect (iTunes Connect > Manage Your Apps > Your App > View in App Store). Minus some parameters (which seems - between other unidentified things - to link to a precise country).
I thinks it's better than the itms://... one because this one redirects you to the iTunes Store on your device, which is not the App Store. You're then redirected, etc. The http://... link seems to be directly hooked to the App Store app.
I ended up using - itms://itunes.apple.com/app/id?mt=8
This seems to be what I was looking for.
Remember http://itunes.apple.com/app/id[Apple_ID] is gone. It will work for the old links and it should work fine for new ones too maybe, but to be safe use the new https://apps.apple.com/app/id[Apple_ID]
You can get application link before uploading your binary file on iTunes Connect.
You just need to upload your meta data using iTunes Connect. And after submitting these data you will get Apple ID. And by this ID you can get the URL for your application.
e.g. http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=appID
where appID="Your application ID when you submit the meta data"
Please check this. It is working here. And If you still have any problem then please let me know. I will help you out to solve the problem.
According to Apple's iTunes Connect documentation the View on App Store link is only available if at least one version of the app has had it's status set to Ready for Sale.
Having said that you can still see what the actual link will be, you just will not be able to load the page.
Best way to get app link is
login to itunes connect
Go to My Apps -> create app record if
you don't have any.
select your app -> go to App Information
section
At bottom of the page check additional information
section, there is a link called "View on App Store". Click on the
link and you will get exact URL for your app.Copy-Paste and Enjoy.
Apple has a documentation for creating easy-to-read app links. If your app name is specified, creating your links with this way is much more clear.
It seems the app id is now the Apple ID in the itunesconnect page. Go to App Information and scroll down until you see Apple ID. That is your app id.
http://itunes.apple.com/app/id[Apple_ID]
Go to https://itunesconnect.apple.com,
if not yet created, create a new App.
Open it and in the first screen (AppStore -> App information -> General) there is a field called "Apple ID" with the id number.
Copy and use it. Is this one.
If AdWords does not allow a link to iTunes, this will solve it...
If you use the link generated at the bottom of iTunesConnect, and you are selling internationally, you will find /us/ or /gb/ or /de/ etc that indicates the language of the relevant store. Adwords will not approve a link with the language indicated.
Why?
Because Adwords does not accept redirects and unmatched URLs. If the link is to the USA store, but the Adword test originates in Germany, then a redirect is detected. Of course, this behavior is correct because no matter what the link says the user will go to her local app store.
Solution: Edit the link from iTunes Connect. Strip out unneeded info. Simply match the display and final URL, disregarding any message about length in the display URL warning text.
URL copied from iTunes:
https://itunes.apple.com/us/app/this-is-my-app-name/id1111111111?ls=1&mt=8
Edited URL suitable for AdWords
DISPLAY URL
itunes.apple.com/app/id111111111
FINAL URL
http://itunes.apple.com/app/id111111111
notes:
- appstore.com is a redirect
- itunes.apple.com by itself is a redirect. Only in full as above does it go directly to your app page.
- When one URL - no matter how valid - redirects, then the result is mismatched URLs.
/gb
1- Go > https://appstoreconnect.apple.com/
2- My Apps > Select Your App
3- App Store > App Information > View On App Store
The best simple link is
http://itunes.apple.com/app/idXXXXXXXXX.
You can get id from your App Information in http://itunesconnect.apple.com.