2011-04-13 12 views
26

Estoy tratando de abrir programáticamente el Mac App Store en una aplicación Mac personalizada. Empecé con el siguiente enlace.Programmatic open Mac App Store

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

Probé el siguiente código, sin embargo, abre el navegador en lugar de Mac App Store.

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

¿Alguna sugerencia sobre cómo puedo hacer esto?

Respuesta

61

URL de este patrón abren la Mac App Store:

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

Así, en su caso:

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

se abrirá el MAS y cargar la página de producto asociado con id # 403961173 (aquí : Pájaros enojados).

Para Basta con cargar el MAS, con el no uso la página del producto particular, esta URL:

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

De hecho lo es. :) Se llama un [esquema de URI] (http://en.wikipedia.org/wiki/URI_scheme), por cierto. ;) Incluso puede [registrar el suyo propio para su aplicación] (http://stackoverflow.com/questions/5463998/how-to-programmatically-register-a-custom-url-scheme) Particularmente útil para incorporar el soporte de bookmarklet. ;) – Regexident

+0

Regexident, este método no funciona en sandbox, obtendrá "deny file-write-data/Applications/App Store.app" –

+0

@JiulongZhao mi aplicación es sandbox y funciona bien. – David

0

abra la página web en un UIWebView. la vista web abrirá iTunes, o al menos solicitará abrir iTunes.

que pueden ser específicos de iphone. pero cualquiera que sea el WebView es para Mac.

0

¿Qué tal:

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

Esto solo abrirá el MAS. Pero lo que no le permitirá es elegir una página de producto para abrirla. Ahí es donde el esquema de URL entra en juego. – Regexident

+1

Aunque si desea abrir una aplicación específica en la tienda de aplicaciones, entonces [la respuesta de Regexident] (http://stackoverflow.com/questions/5656746/programmatically-open-mac-app-store/5656762#5656762) es mejor. –

6

Si lo que desea es mostrar la página de actualizaciones puede utilizar esta URL : macappstore: // showUpdatesPage

Cuestiones relacionadas