2011-04-13 147 views
26

我试图以编程方式在自定义Mac App中打开Mac App Store。我从下面的链接开始。以编程方式打开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"]]; 

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

回答

61

网址打开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与负载编号403961173关联的产品页面(点击这里: 愤怒的小鸟)。

只加载MAS,没有具体的产品页面时使用这个网址:

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

事实确实如此。 :)它被称为[URI方案](http://en.wikipedia.org/wiki/URI_scheme),顺便说一句。 ;)你甚至可以[注册你自己的应用程序](http://stackoverflow.com/questions/5463998/how-to-programmatically-register-a-custom-url-scheme)特别适用于书签支持。 ;) – Regexident 2011-04-13 23:20:14

+0

Regexident,这种方法不能在沙箱下工作,你会得到“拒绝文件写入数据/应用程序/ App Store.app” – 2012-06-28 22:18:36

+0

@JiulongZhao我的应用程序是沙盒,它工作正常。 – David 2012-11-08 19:20:38

0

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

这可能是iphone特定的。但是无论WebView适用于Mac。这种模式的

0

如何:

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

这只会打开MAS。但是它不允许你选择一个产品页面来打开它。这就是URL方案发挥作用的地方。 – Regexident 2011-04-13 23:12:37

+1

虽然如果你想在App Store中打开一个特定的应用程序,那么[Regexident's answer](http://stackoverflow.com/questions/5656746/programmatically-open-mac-app-store/5656762#5656762)更好。 – 2011-04-13 23:14:41

6

如果你只是想显示的更新页面,您可以使用此网址: macappstore:// showUpdatesPage