重定向到AppStore for Native Mail App

时间:2018-06-13 05:59:13

标签: ios swift url-redirection url-scheme

我希望通过使用以下代码重定向到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)!)
    }

1 个答案:

答案 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")