2011-04-13 123 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