Перенаправить в AppStore для приложения Native Mail - PullRequest
0 голосов
/ 13 июня 2018

Я хочу перенаправить в AppStore на собственное приложение iOS Mail, используя следующий код, но он не работает, я также заменил его на http, но затем он открывает браузер Safari, но мне нужно открыть AppStore.

I 'Используя следующий код, он работает в случае 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 голосов
/ 13 июня 2018

Начиная с 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")
...