2014-09-17 3 views
16

Не могли бы вы, ребята, помочь мне перевести следующий код в Swift?Откройте AppStore через кнопку

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.apple.com/de/app/x-gift/id839686104?mt=8&uo=4"]]; 

(или я должен принять эту ссылку: ITMS: //itunes.apple.com/app/id839686104?)

Спасибо заранее!

+2

[Вопросы просит домашние заданий должны включать краткую информацию о работе, которую вы сделали до сих пор, чтобы решить эту проблему, и описание трудности, которую вы решаете.] (http://stackoverflow.com/help/on-topic) Я знаю, что это не вопрос домашней работы, но вам все равно нужно проявить некоторый эффект. –

ответ

43

Здесь. Но я настоятельно рекомендую вам изучить основы Swift!

UIApplication.sharedApplication().openURL(NSURL(string: "itms://itunes.apple.com/de/app/x-gift/id839686104?mt=8&uo=4")!) 
+0

спасибо за это! –

+0

Действительно ли это позволяет пользователю «подарить» приложение третьей стороне? Ссылка 'x-gift'? –

+0

Ha, X-Gift было моим именем приложения @KatherineJenkins – LinusGeffarth

9

Поскольку другие ответы не работает для меня (Swift, Xcode 6.1.1) здесь я выкладываю мое решение:

var url = NSURL(string: "itms://itunes.apple.com/de/app/x-gift/id839686104?mt=8&uo=4") 

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

Xcode 6,4

+1

Это совпадает с приведенным выше ответом, но с другим URL-адресом. –

13

Я использую эту комбинацию , это лучше для курса/покупки.

(частично из here)

@IBAction func rateMe(sender: AnyObject) { 
    if #available(iOS 8.0, *) { 
     openStoreProductWithiTunesItemIdentifier("107698237252"); 
    } else { 
     var url = NSURL(string: "itms://itunes.apple.com/us/app/xxxxxxxxxxx/id107698237252?ls=1&mt=8") 
     if UIApplication.sharedApplication().canOpenURL(url!) == true { 
      UIApplication.sharedApplication().openURL(url!) 
     } 

    } 
} 
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 { 
+0

плюс 1 для StoreKit. Это лучший способ, чем просто открыть AppStore – LinusGeffarth

31

Swift 3 Синтаксис и улучшен с ', если давайте

if let url = URL(string: "itms-apps://itunes.apple.com/app/id1024941703"), 
UIApplication.shared.canOpenURL(url){ 
    UIApplication.shared.openURL(url) 
} 

ОБНОВЛЕНИЕ 7/5/17 (Спасибо, Оскар за это указывает):

if let url = URL(string: "itms-apps://itunes.apple.com/app/id1024941703"), 
    UIApplication.shared.canOpenURL(url) 
{ 
    if #available(iOS 10.0, *) { 
     UIApplication.shared.open(url, options: [:], completionHandler: nil) 
    } else { 
     UIApplication.shared.openURL(url) 
    } 
} 
+3

Nice, но openURL() устарел. Теперь мы должны использовать это для одного и того же поведения. UIApplication.shared.open (url, options: [:], completHandler: nil) – Oscar

4

Проверить новые обновления приложения доступны на ITunes в Swift 3

let currentAppVersion = Bundle.main.infoDictionary 
Alamofire.request("http://itunes.apple.com/jp/lookup/?id=548615", method: .get, parameters: nil, headers: nil).responseJSON { response in 
     if let value = response.result.value as? [String: AnyObject] { 
      let versionNum = value["results"]?.value(forKey: "version") as? NSArray 
      if versionNum?[0] as! String != currentAppVersion?["CFBundleShortVersionString"] as! String { 
       self.alertForUpdateApp() 
      } 
     } 
    } 

func alertForUpdateApp() { 

    let alertController = UIAlertController(title: "Update Available", message: "There is a newer version of this app available", preferredStyle: .alert) 
    let alertActionCancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) 
    let alertActionUpdate = UIAlertAction(title: "Update", style: .default, handler: { _ in 
     if let url = URL(string: Constants.API_REDIRECT_TO_ITUNES), 
      UIApplication.shared.canOpenURL(url){ 
      UIApplication.shared.open(url, options: [:], completionHandler: nil) 

     } 
    }) 

    alertController.addAction(alertActionCancel) 
    alertController.addAction(alertActionUpdate) 

    let pushedViewControllers = (self.window?.rootViewController as! UINavigationController).viewControllers 
    let presentedViewController = pushedViewControllers[pushedViewControllers.count - 1] 

    presentedViewController.present(alertController, animated: true, completion: nil) 

} 
+0

Мне нужно открыть магазин приложений моего iphone..by нажав кнопку ставки me в моем приложении , так что мне нужно открыть мое приложение в самом магазине приложений в моем iphone ... как я могу это сделать с кодом ur..here my post ... https: //stackoverflow.com/questions/44499611/trigger-app-store -в-открытые в-мобильный-открытой частность-приложение?noredirect = 1 # comment75992581_44499611 –

+0

Вы должны интегрировать этот код: если пусть url = URL (строка: Constants.API_REDIRECT_TO_ITUNES), UIApplication.shared.canOpenURL (url) { UIApplication.shared.open (url, options: [:], completeHandler: nil) } –

+1

используйте этот url вместо Constants.API_REDIRECT_TO_ITUNES: "https://itunes.apple.com/in/app/your-appName/id548615579?mt=8" –