Pourriez-vous m'aider à traduire le code suivant en Swift?
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://iTunes.Apple.com/de/app/x-gift/id839686104?mt=8&uo=4"]];
(ou dois-je prendre ce lien: itms: //iTunes.Apple.com/app/id839686104 ?)
Merci d'avance!
Ici. Mais je vous suggère fortement d'apprendre les bases de Swift!
UIApplication.sharedApplication().openURL(NSURL(string: "itms://iTunes.Apple.com/de/app/x-gift/id839686104?mt=8&uo=4")!)
Swift 3 Syntax et amélioré avec un 'if let'
if let url = URL(string: "itms-apps://iTunes.Apple.com/app/id1024941703"),
UIApplication.shared.canOpenURL(url){
UIApplication.shared.openURL(url)
}
UPDATE 7/5/17 (Merci Oscar de l'avoir signalé):
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)
}
}
J'utilise cette combinaison, c'est mieux pour le taux/shopping.
(partiellement de ici )
@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)
}
n'oubliez pas d'importer et de déléguer:
import StoreKit
class RateMeViewController: UIViewController, SKStoreProductViewControllerDelegate {
Comme les autres réponses ne fonctionnaient pas pour moi (Swift, Xcode 6.1.1), je publie ici ma solution:
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!)
}
Swift 4 avec gestionnaire de complétion:
Assurez-vous de mettre à jour votre identifiant dans appStoreUrlPath
func openAppStore() {
if let url = URL(string: "itms-apps://iTunes.Apple.com/app/id..."),
UIApplication.shared.canOpenURL(url){
UIApplication.shared.open(url, options: [:]) { (opened) in
if(opened){
print("App Store Opened")
}
}
} else {
print("Can't Open URL on Simulator")
}
}
Vérifiez les nouvelles mises à jour d'applications disponibles sur iTunes dans 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)
}
Pour le nouvel AppStore, ouvrez simplement le lien de votre application sur l'AppStore et remplacez le modèle https
par itms-apps
scheme . Exemple sur Swift 4:
if let url = URL(string: "itms-apps://iTunes.Apple.com/us/app/my-app/id12345678?ls=1&mt=8") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
Vous pouvez trouver le lien de votre application sur la page Informations sur l'application.
var url = NSURL(string: "itms-apps://iTunes.Apple.com/app/id1024941703")
if UIApplication.sharedApplication().canOpenURL(url!) == true {
UIApplication.sharedApplication().openURL(url!)
}
Xcode 6.4
Si vous voulez ouvrir dans l'App Store, utilisez
let appstoreUrl = "https://iTunes.Apple.com/in/app/myapp-test/id11111111?mt=8"
UIApplication.shared.openURL(URL(string: appstoreUrl)!)
si vous voulez utiliser iTunes Store
let ituneUrl = "itms-apps://iTunes.Apple.com/in/app/myapp-test/id11111111?mt=8"
UIApplication.shared.openURL(URL(string: ituneUrl)!)
Pour moi n'a pas fonctionné une de ces réponses. (Swift 4) L'application ouvre toujours l'iTunes Store, pas l'AppStore.
Je devais changer l'URL en " http://appstore.com/%Appname% " comme décrit dans ce Q & A Apple: https://developer.Apple.com/library/archive/qa/qa1633 /_index.html
par exemple comme ça
private let APPSTORE_URL = "https://appstore.com/keynote"
UIApplication.shared.openURL(URL(string: self.APPSTORE_URL)!)
(supprimer les espaces du nom de l'application)