How to link to apps on the app store

I am creating a free version of my iPhone game. I want to have a button inside the free version that takes people to the paid version in the app store. If I use a standard link

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8

the iPhone opens Safari first, and then the app store. I have used other apps that open the app store directly, so I know it is possible.

Any ideas? What is the URL Scheme for the app store?


Edited on 2016-02-02

Starting from iOS 6 SKStoreProductViewController class was introduced. You can link an app without leaving your app. Code snippet in Swift 3.x/2.x and Objective-C is here.

A SKStoreProductViewController object presents a store that allows the user to purchase other media from the App Store. For example, your app might display the store to allow the user to purchase another app.


From News and Announcement For Apple Developers.

Drive Customers Directly to Your App on the App Store with iTunes Links With iTunes links you can provide your customers with an easy way to access your apps on the App Store directly from your website or marketing campaigns. Creating an iTunes link is simple and can be made to direct customers to either a single app, all your apps, or to a specific app with your company name specified.

To send customers to a specific application: http://itunes.com/apps/appname

To send customers to a list of apps you have on the App Store: http://itunes.com/apps/developername

To send customers to a specific app with your company name included in the URL: http://itunes.com/apps/developername/appname


Additional notes:

You can replace http:// with itms:// or itms-apps:// to avoid redirects.

For info on naming, see Apple QA1633:

https://developer.apple.com/library/content/qa/qa1633/_index.html.

Edit (as of January 2015):

itunes.com/apps links should be updated to appstore.com/apps. See QA1633 above, which has been updated. A new QA1629 suggests these steps and code for launching the store from an app:

  • Launch iTunes on your computer.
  • Search for the item you want to link to.
  • Right-click or control-click on the item's name in iTunes, then choose "Copy iTunes Store URL" from the pop-up menu.
  • In your application, create an NSURL object with the copied iTunes URL, then pass this object to UIApplication ' s openURL : method to open your item in the App Store.
  • Sample code:

    NSString *iTunesLink = @"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];
    

    Swift 3.0

       let urlStr = "itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8"
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)
    
        } else {
            UIApplication.shared.openURL(URL(string: urlStr)!)
        }
    

    If you want to open an app directly to the App Store, you should use:

    itms-apps://...

    This way it will directly open the App Store app in the device, instead of going to iTunes first, then only open the App Store (when using just itms://)

    Hope that helps.


    EDIT: APR, 2017. itms-apps:// actually works again in iOS10. I tested it.

    EDIT: APR, 2013. This no longer works in iOS5 and above. Just use

    https://itunes.apple.com/app/id378458261
    

    and there are no more redirects.


    To be extreamly concise:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/appname"]];
    

    If you want to send to all the apps for a developer, use

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/developername"]];
    

    These work for iOS 4.1

    If you want to link to a developer's apps and the developer's name has punctuation or spaces (eg Development Company, LLC) form your URL like this:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.com/apps/DevelopmentCompanyLLC"]];
    

    Otherwise it returns "This request cannot be processed" on iOS 4.3.3

    链接地址: http://www.djcxy.com/p/30662.html

    上一篇: 如何将NSString转换为NSNumber

    下一篇: 如何链接到应用商店中的应用