Запуск App Store из приложения в Swift

Я создаю приложение, и у меня есть баннер, который продвигает мое другое приложение. Это мой код:

var barsButton : UIButton = UIButton(frame: CGRectMake((self.view.bounds.width / 2) - 51, self.view.bounds.height - 100, 102, 30))
barsButton.setImage(UIImage(named: "Bars Icon 2.png"), forState: .Normal)
barsButton.addTarget(self, action: "openBarsLink", forControlEvents: UIControlEvents.TouchUpInside)

func openBarsLink() {
    var barsLink : String = "itms-apps:https://itunes.apple.com/app/bars/id706081574?mt=8"
    UIApplication.sharedApplication().openURL(NSURL.URLWithString(barsLink))
}

Однако, когда пользователь нажимает кнопку, он просто переносит их в App Store, а не на определенную страницу для моего приложения. Что я делаю неправильно?

Ответы

Ответ 1

В URL-адресе слишком много протоколов. Избавьтесь от https:, чтобы URL-адрес читал

itms-apps://itunes.apple.com/app/bars/id706081574

Ответ 2

Просто следуя старым ответам, я не мог заставить это работать, поэтому здесь я отправляю свое полное решение:

var url  = NSURL(string: "itms-apps://itunes.apple.com/app/bars/id706081574")
if UIApplication.sharedApplication().canOpenURL(url!) {
    UIApplication.sharedApplication().openURL(url!)
}

Ответ 3

Используйте только короткие "itms://".

Для Swift 3 это фрагмент:

UIApplication.shared.openURL(URL(string: "itms://itunes.apple.com/app/id" + appStoreAppID)!)

Я надеюсь, что это поможет кому-то.

Приветствия.

P.S. @Эрик Ая был впереди времени:)

Ответ 4

Swift 3 - XCode 8.2.1

UIApplication.shared.openURL(URL(string: "itms-apps://itunes.apple.com/app/id" + appStoreAppID)!)

Ответ 5

У меня была эта проблема, но этот код просто работает на телефоне, а не на симуляторе. Поэтому проверьте этот код:

if let url = URL(string: "itms-apps://itunes.apple.com/app/id" + APP_ID ),
    UIApplication.shared.canOpenURL(url){
    UIApplication.shared.openURL(url)
}else{
    //Just check it on phone not simulator!
    print("Can not open")
}

Ответ 6

Ссылка, которую вы пытаетесь открыть, недействительна - удалите https: schema из нее (или itms: - но я предлагаю первый вариант, чтобы избежать перенаправления)

Ответ 7

Поскольку openURL устарел от iOS 10, используйте ниже код:

UIApplication.shared.open((URL(string: "itms://itunes.apple.com/app/" + appStoreAppID)!), options:[:], completionHandler: nil)