An old post discussed how to send iPhone app users to an app store review page directly
However, the link template:
https://userpub.itunes.apple.com/WebObjects/MZUserPublishing.woa/wa/addUserReview?id=337064413&type=Purple+Software
is no longer works in iOS 4.3. Does any know how to link user to the review page in iTunes directly?
Try this
NSString *str = #"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=337064413"; //replace the id param's value with your App's id
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
Also works with PhoneGap/Cordova:
"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=337064413";
or
"http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=337064413"
replace the id param's value with your App's id
Now that Cordova/PhoneGap uses the plugin InAppBrowser for links, the correct syntax is:
window.open("itms-apps://itunes.apple.com/us/app/scorekeepr-free/id490888743?ls=1&mt=8","_system");
This was tested in a real app with Cordova-iOS 2.3.0rc2 on an iPad running iOS 5.1
Related
How do i find the scheme of another app and deep link to it from my own iOS app?
More specifically, I want to deep link to the Testflight app upon certain conditions (set by my code). I'm assuming the person has Testflight installed, (which might be a bad assumption but we can live with that assumption).
I know that on Android, you can query for apps and send intents to deep link to someone else's app. What would be the equivalent on iOS?
There are two things you need to do. First, check to see if TestFlight is installed. Then create a new link to your app.
NSURL *customAppURL = [NSURL URLWithString:#"itms-beta://"];
if ([[UIApplication sharedApplication] canOpenURL:customAppURL]) {
// TestFlight is installed
// Special link that includes the app's Apple ID
customAppURL = [NSURL URLWithString:#"https://beta.itunes.apple.com/v1/app/978489855"];
[[UIApplication sharedApplication] openURL:customAppURL];
}
This special https://beta.itunes.apple.com URL will be opened directly in TestFlight.
Finally, if you are using iOS 9 (or later), you need to make an addition to your Info.plist to get the canOpenURL: method to work.
If your app is linked on or after iOS 9.0, you must declare the URL
schemes you want to pass to this method. Do this by using the
LSApplicationQueriesSchemes array in your Xcode project’s Info.plist
file. For each URL scheme you want your app to use with this method,
add it as a string in this array.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>itms-beta</string>
</array>
From looking at the plist the URL scheme for TestFlight is "itms-beta://" I can't manage to get it deep linking yet, I've tried passing it the Apple ID, with and without a ? along with prefixing it with appleid= I will try bundle ID next.
To open the TestFlight app on the users device you can use:
NSURL *customAppURL = [NSURL URLWithString:#"itms-beta://"];
if ([[UIApplication sharedApplication] canOpenURL:customAppURL]) {
[[UIApplication sharedApplication] openURL:customAppURL];
}
Swift 3/4 answer:
if let customAppURL = URL(string: "itms-beta://"){
if(UIApplication.shared.canOpenURL(customAppURL)){
UIApplication.shared.open(customAppURL, options: [:], completionHandler: nil)
}
}
Most of the built-in applications Apple provides respond to custom URL schemes; for example, the Maps, Mail, YouTube, iTunes, and App Store applications will all open in response to custom URLs. However, there are also many established third-party applications with published URL schemes that you can use in your own application. You can search the applications schemes on
http://handleopenurl.com/
http://wiki.akosma.com/IPhone_URL_Schemes – both have a great list of URL schemes
Once you got the custom URL scheme then you can deep link to that app using the same schema,
NSURL *customAppURL = [NSURL URLWithString:#"urlscheme://"];
//Eg: NSURL *whatsappURL = [NSURL URLWithString:#"whatsapp://send?text=Hello%20World!"];
if ([[UIApplication sharedApplication] canOpenURL:whatsAppURL]) {
[[UIApplication sharedApplication] openURL:whatsAppURL]]];
}
Another way to invoke either one app or another:
- (IBAction)go:(id)sender {
NSString *cnnAppURL = #"cnn://";
NSString *mapsAppURL = #"maps://";
BOOL canOpenURL = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:cnnAppURL]];
NSString *url = canOpenURL ? cnnAppURL : mapsAppURL;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
Please read "UseYourLoaf's recent blog post on using URLschemes with canOpenURL. This relates to new security concerns and solutions. Quote:
"This is useful but developers including Twitter and Facebook were using this mechanism to discover the list of Apps installed on a device so they can deliver “tailored content”. Apple decided this is a privacy violation and so in iOS 9 restricted the querying of URL schemes. If you build and link against the iOS 9 SDK you need to whitelist the schemes your app will query. What is important to understand is that this policy can also impact older Apps that have not yet been rebuilt with the iOS 9 SDK."
Please read this link on issues related to the canOpenURL function
Read #picciano's last point - this won't work without modifying your app's plist.
I'm having an ios App. I'm able to open the linked native app from my ios App using the custom url scheme "linkedin://". But how to post a link to the linkedin native app through my ios App. Do we have any particular parameters for that?
What are the supported parameters for linkedin URL scheme?
Thanks, Thiagesh
Linkedin has changed the scheme, now it works in this way:
linkedin://profile/[id]
You can jump to a profile with:
linkedin://#profile/9999
I just tested this on my iPhone 5. Works like a charm.
There's more conversation here, but not much content.
http://developer.linkedin.com/forum/link-open-linkedin-profile-browser-ios-linkedin-app
If you get LinkedIn profile via LinkedIn REST API, then you can find publicProfileUrl field in JSON:
{
...
"publicProfileUrl": "https://www.linkedin.com/in/eugene-brusov"
...
}
Then this line of code:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:#"https://www.linkedin.com/in/eugene-brusov"]];
redirects you to target profile opened in the native LinkedIn app if it's installed or to the profile opened in iOS default browser.
Tested on iOS 10.0.2 and 11.0.1.
Working on iOS 8.3:
linkedin://profile?id=[id]
Take a look to: http://pureoxygenlabs.com/10-app-url-schemes-for-marketers/
Is there any way to Open Apple AppStore with my iPhone Application ?
Yes, You Can do this Using :
If you have your application URLthen.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:
#"itms-apps://YourApplicationLink"]];
else you can create the URL with this.
Link Maker
Thanks
please see this apple QA Link https://developer.apple.com/library/ios/#qa/qa1633/_index.html
provided by
Company Name
http://itunes.com/apps/<companyname>
for example, http://itunes.com/apps/smule
Application Name
http://itunes.com/apps/<applicationname>
for example, http://itunes.com/apps/ocarina
Application by Company
http://itunes.com/apps/<companyname>/<applicationname>
for example, http://itunes.com/apps/smule/ocarina
Launching the App Store from an iPhone application
https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html
In iOS6 there is the new SKStoreProductViewController http://developer.apple.com/library/ios/#documentation/StoreKit/Reference/SKITunesProductViewController_Ref/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011852
Use the itms-apps: or itms-appss: URL scheme.
Does anyone know what the custom URL scheme is to open a Facebook page in their new iOS app. I was using fb://page/PAGE_ID however this doesn't seem to be working in the recently updated Facebook iOS app, it just opens the app but doesn't go to the required page.
I got this answer at developer.facebook.com:
Replace the word page with profile and it will work. Your new statement will be:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:#"fb://profile/247377102029332"]];
Use https://graph.facebook.com/YOUR_USERNAME to get your page ID.
In your iOS app use: fb://profile/[your ID] and the facebook app will open to your page.
The URL scheme for the iOS Facebook application is:
fb://profile/(fbid)
Same problem here. fb://page/PAGE_ID is not working anymore.
Note that fb://profile/(fbid) wasn't working properly on Facebook 4.x returning a "corrupted" page in both iPad and iPhone. Instead, fb://profile/(fbid)/wall in Facebook 4.x worked well when using an iPad but didn't work with an iPhone.
fb://page/PAGE_ID was the only option that worked on both iPhone and iPad, based on my experience.
I used to use http://wiki.akosma.com/IPhone_URL_Schemes as reference, but it's currently down...
A custom URL scheme is a mechanism through which third-party apps can communicate with each other. It doesn't allow you the provision to open a page in that particular application. It just fires an event to bring the called Application to the foreground. Going through this documentation would further clear your doubts.
The new Facebook app is built using Objective-C as against previous once in HTML5 which used to support URL scheme mechanism. This link gives a hint on that.
http://techcrunch.com/2012/08/23/facebook-for-ios-faster/
Is there any URL scheme that will launch the Calendar app on iOS?
I use Prowl to push Growl notifications to my phone. They just added support to launch an app with a URL based on the notification. I tried cal:// caldav:// and ical:// without any luck.
Try this. it works for me. Here is the link
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: #"calshow://"]];
Update: you can now use the calshow:// URL to open the Calendar app on iOS.
See this question: Apple does not list this application on its Apple URL Scheme Reference.