xamarin ios 10在我的应用程序中以编程方式打开应用程序商店应用程序

时间:2016-11-14 09:02:34

标签: xamarin xamarin.ios

我正在尝试以编程方式在我的应用中打开应用商店应用。

我正在尝试做的是我正在调用当前应用版本的服务,如果需要更新,我应该打开应用商店应用程序让用户更新我的应用。

注意:该应用尚未发布到商店,我仍处于编码阶段。

我试图在ViewDidLoad方法中使用以下代码,但它无法正常工作(没有任何反应):

var nsurl = new NSUrl("itms://itunes.apple.com");
UIApplication.SharedApplication.OpenUrl(nsurl);

3 个答案:

答案 0 :(得分:5)

通过itms:的直接链接仅适用于实际设备,如果您在模拟器上进行测试,请使用https://itunes.apple.com/us/genre/ios/id36?mt=8

我建议在实际设备上使用itms://链接,因为它会阻止用户在使用https://链接打开iTunes时看到的重定向。

bool isSimulator = Runtime.Arch == Arch.SIMULATOR;
NSUrl itunesLink;
if (isSimulator)
{
    itunesLink = new NSUrl("https://itunes.apple.com/us/genre/ios/id36?mt=8");
}
else
{
    itunesLink = new NSUrl("itms://itunes.apple.com");
}
UIApplication.SharedApplication.OpenUrl(itunesLink, new NSDictionary() { }, null);

您可能需要考虑使用SKStoreProductViewController将用户置于应用内部,而不是在设备上打开外部商店应用:

bool isSimulator = Runtime.Arch == Arch.SIMULATOR;
if (!isSimulator)
{
    var storeViewController = new SKStoreProductViewController();
    storeViewController.Delegate = this;
    var id = SKStoreProductParameterKey.ITunesItemIdentifier;
    var productDictionaryKeys = new NSDictionary("SKStoreProductParameterITunesItemIdentifier", 123456789);
    var parameters = new StoreProductParameters(productDictionaryKeys);
    storeViewController.LoadProduct(parameters, (bool loaded, NSError error) =>
    {
        if ((error == null) && loaded)
        {
            this.PresentViewController(storeViewController, true, () =>
            {
                Console.WriteLine("SKStoreProductViewController Completed");
            });
        }
        if (error != null)
        {
            throw new NSErrorException(error);
        }
    });
}
else
{
    var itunesLink = new NSUrl("https://itunes.apple.com/us/genre/ios/id36?mt=8");
    UIApplication.SharedApplication.OpenUrl(itunesLink, new NSDictionary() { }, null);
}

答案 1 :(得分:2)

NSBundle.MainBundle.InfoDictionary["CFBundleVersion"]

返回当前的应用版本。

要打开Apple Appstore,只需让用户导航到appstore链接,Apple就会自动检测到用户正在使用iPhone并为他们打开Appstore。

测试自己:

在safari中打开以下链接:Whatsapp in the Appstore

它会自动打开appstore。

答案 2 :(得分:2)

当您在iTunesConnect上创建应用时,即使您尚未发布该应用,也可以在AppStore中获取未来应用的网址。您可以在“应用信息”选项卡下找到它: enter image description here

在您的应用中,您可以打开它:

var nsurl = new NSUrl("https://itunes.apple.com/us/app/mygreatapp/id123456789");
UIApplication.SharedApplication.OpenUrl(nsurl);