在进行版本升级时,我一直试图从我的应用程序打开/导航App Store。
为此,我写了customrender
,它对于android来说效果很好。但这不适用于iOS。以下是为iOS customrenderer
编写的代码。我在附件中附加了代码的屏幕截图。
public class OpenAppStore : UIViewController, ISKStoreProductViewControllerDelegate, IOpenStore
{
public void OpenStore()
{
bool isSimulator = Runtime.Arch == Arch.SIMULATOR;
if (!isSimulator)
{
var storeViewController = new SKStoreProductViewController();
storeViewController.Delegate = this;
var id = SKStoreProductParameterKey.ITunesItemIdentifier;
var productDictionaryKeys = new NSDictionary("SKStoreProductParameterITunesItemIdentifier", 1389696261);
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);
}
}
}
问题:它不会引发任何错误。 PresentViewController会被调用,但不会在App Store中导航/打开我的应用。
谢谢
答案 0 :(得分:0)
首先,您不需要为此定制渲染器。您应该注入一个简单的帮助程序类,该类将为您支持的每个平台打开相应的应用程序商店。 其次,您用于iOS App Store的URL似乎不正确。使用类似的东西:
var url = new NSUrl($"https://itunes.apple.com/us/app/apple-store/{myAppId}?mt=8");
上面使用的应用商店URL来自Apple docs。然后,您可以打开该网址。