我希望通过使用以下代码重定向到AppStore到本机iOS Mail应用程序,但它不能正常工作,我还用http替换了它,但它打开了safari浏览器,但我需要打开AppStore。
我使用以下代码,它适用于HTTP而不是itms。 我是否需要在plist中添加更多内容,因为Allow Arbitrary Loads已经为True。请建议我解决这个问题。
let urlStr = "itms://itunes.apple.com/in/app/mail/id1108187098?mt=8"
if #available(iOS 10.0, *) {
UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(URL(string: urlStr)!)
}
答案 0 :(得分:0)
从iOS 6开始,正确使用SKStoreProductViewController类。
https://stackoverflow.com/a/32008404/5148089
func openStoreProductWithiTunesItemIdentifier(identifier: String) {
let storeViewController = SKStoreProductViewController()
storeViewController.delegate = self
let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
if loaded {
// Parent class of self is UIViewContorller
self?.presentViewController(storeViewController, animated: true, completion: nil)
}
}
}
func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
viewController.dismissViewControllerAnimated(true, completion: nil)
}
请勿忘记导入和委派:
import StoreKit
class RateMeViewController: UIViewController, SKStoreProductViewControllerDelegate {
简单地称之为:
openStoreProductWithiTunesItemIdentifier("1108187098")