【问题标题】:Programmatically open Mac App Store以编程方式打开 Mac App Store
【发布时间】:2011-08-05 03:10:12
【问题描述】:

我正在尝试以编程方式在自定义 Mac App 中打开 Mac App Store。我从下面的链接开始。

http://itunes.apple.com/us/app/angry-birds/id403961173?mt=12

我尝试了以下代码,但它打开的是浏览器而不是 Mac App Store。

[[NSWorkspace sharedWorkspace] openURL:
 [NSURL URLWithString:@"http://itunes.apple.com/us/app/angry-birds/id403961173?mt=12"]];

关于如何做到这一点的任何建议?

【问题讨论】:

    标签: objective-c cocoa mac-app-store


    【解决方案1】:

    这种模式的 URL 会打开 Mac App Store:

    macappstore://itunes.apple.com/app/id403961173?mt=12
    

    所以在你的情况下:

    [[NSWorkspace sharedWorkspace] openURL:
     [NSURL URLWithString:@"macappstore://itunes.apple.com/app/id403961173?mt=12"]];
    

    将打开 MAS 并加载与 ID #403961173 关联的产品页面(此处:愤怒的小鸟)。

    要仅加载 MAS,没有特定的产品页面,请使用此 URL:

    [[NSWorkspace sharedWorkspace] openURL:
     [NSURL URLWithString:@"macappstore://itunes.apple.com/"]];
    

    【讨论】:

    • 确实如此。 :) 它被称为URI scheme,顺便说一句。 ;) 你甚至可以register your own for your app 加入书签支持特别方便。 ;)
    • Regexident,此方法在沙箱下无效,会得到“deny file-write-data /Applications/App Store.app”
    • @DavidL:是的,该警告仅在 Xcode 4.5.2 下的调试期间出现
    • 酷;对于仅仅启动/激活 MAS,macappstore:// 甚至只是 macappstore: 似乎就足够了(至少从 OS X 10.8.3 开始)。
    • 有没有办法打开一个特定的开发者页面,列出所有使用这种方法的开发者应用程序?
    【解决方案2】:

    如果您只想显示更新页面,您可以使用此 URL: macappstore://showUpdatesPage

    【讨论】:

      【解决方案3】:

      怎么样:

      [[NSWorkspace sharedWorkspace] launchApplication:@"/Applications/App Store.app"]
      

      【讨论】:

      • 这只会打开 MAS。但它不允许你选择一个产品页面来打开它。这就是 URL 方案发挥作用的地方。
      • 虽然如果你想在应用商店打开特定的应用,那么Regexident's answer更好。
      【解决方案4】:

      在 UIWebView 中打开网页。然后 webview 将打开 iTunes,或者至少要求打开 iTunes。

      这可能是 iphone 特定的。但无论 WebView 用于 mac。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-22
        相关资源
        最近更新 更多