可能重复:
以编程方式打开 Mac App Store
我正在开发一个 10.8.0+ OSX 应用程序,我需要以编程方式向用户显示 App Store 以更新他的操作系统以使用 Facebook 集成(仅当他不在 10.8.2 上时)。
如何打开 App Store 的更新部分,或类似的东西做同样的事情?
可能重复:
以编程方式打开 Mac App Store
我正在开发一个 10.8.0+ OSX 应用程序,我需要以编程方式向用户显示 App Store 以更新他的操作系统以使用 Facebook 集成(仅当他不在 10.8.2 上时)。
如何打开 App Store 的更新部分,或类似的东西做同样的事情?
使用iTunes Link Maker,您可以获得一个在 MacOS X 10.8 页面上打开 Mac AppStore 的链接(只需在“Mac 应用程序”部分中搜索“OSX”),如下所示:
https://itunes.apple.com/us/app/os-x-mountain-lion/id537386512?mt=12&uo=4
不幸的是,直接使用此链接会打开您的浏览器,该浏览器将要求用户单击按钮以打开 Mac AppStore 中的页面,但在快速挖掘与此按钮关联的 javascript 代码后,很容易看到而不是替换"https://"
为"macappstores://"
will直接打开 Mac AppStore之前无需打开您的默认网络浏览器。
所以简而言之,让您的应用程序打开下面的链接应该可以解决问题:
NSString* const kOSX8AppStoreURL = @"macappstores://itunes.apple.com/us/app/os-x-mountain-lion/id537386512?mt=12";
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:kOSX8AppStoreURL]];
当然,这确实会打开 AppStore 中“OS X Mountain Lion”应用程序的页面,而不是真正打开 Mac AppStore 应用程序的“更新”选项卡,但我认为这是您能做的最好的事情。
在深入研究了 Mac AppStore 应用程序发送的请求以检查更新后(感谢中间人代理和受信任的 CA 证书来引诱 AppStore.app HTTPS 请求,以及一些 Base64 解码),我终于找到了用于打开 Mac App Store 的“更新”页面的 URL!
所以这是我发现的直接打开更新选项卡的 URL:
https://su.itunes.apple.com/WebObjects/MZSoftwareUpdate.woa/wa/viewSoftwareUpdate
到目前为止,我对其进行了测试,如果 AppStore.app 尚未打开,它会打开它,转到“更新”选项卡,然后立即开始搜索新的更新 :)