Ответ 1
В URL-адресе слишком много протоколов. Избавьтесь от https:
, чтобы URL-адрес читал
itms-apps://itunes.apple.com/app/bars/id706081574
Я создаю приложение, и у меня есть баннер, который продвигает мое другое приложение. Это мой код:
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, а не на определенную страницу для моего приложения. Что я делаю неправильно?
В URL-адресе слишком много протоколов. Избавьтесь от https:
, чтобы URL-адрес читал
itms-apps://itunes.apple.com/app/bars/id706081574
Просто следуя старым ответам, я не мог заставить это работать, поэтому здесь я отправляю свое полное решение:
var url = NSURL(string: "itms-apps://itunes.apple.com/app/bars/id706081574")
if UIApplication.sharedApplication().canOpenURL(url!) {
UIApplication.sharedApplication().openURL(url!)
}
Используйте только короткие "itms://".
Для Swift 3 это фрагмент:
UIApplication.shared.openURL(URL(string: "itms://itunes.apple.com/app/id" + appStoreAppID)!)
Я надеюсь, что это поможет кому-то.
Приветствия.
P.S. @Эрик Ая был впереди времени:)
Swift 3 - XCode 8.2.1
UIApplication.shared.openURL(URL(string: "itms-apps://itunes.apple.com/app/id" + appStoreAppID)!)
У меня была эта проблема, но этот код просто работает на телефоне, а не на симуляторе. Поэтому проверьте этот код:
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")
}
Ссылка, которую вы пытаетесь открыть, недействительна - удалите https: schema из нее (или itms: - но я предлагаю первый вариант, чтобы избежать перенаправления)
Поскольку openURL устарел от iOS 10, используйте ниже код:
UIApplication.shared.open((URL(string: "itms://itunes.apple.com/app/" + appStoreAppID)!), options:[:], completionHandler: nil)