web-dev-qa-db-fra.com

Lien App Store pour "noter/commenter cette application"

Je souhaite mettre une fonctionnalité "évaluer/évaluer cette application" dans mon application.

Existe-t-il un moyen de créer un lien direct vers l'écran de l'App Store où ils examinent l'application? Ainsi, le client n'a pas à cliquer sur le lien principal de l'application. Merci.

EDIT: commencer une prime sur cela en raison du manque de réponse. Pour que tout soit clair: je suis conscient que je peux créer un lien vers la page de mon application dans le magasin et demander à l'utilisateur de cliquer à partir de là pour accéder à l'écran "Consulter cette application". La question est de savoir s'il est possible de créer un lien direct vers l'écran "revoir cette application" afin qu'ils n'aient pas à cliquer sur quoi que ce soit.

176
William Jockusch

Pour les versions inférieures à iOS 7, utilisez l'ancienne:

itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

Cela fonctionne de mon côté (Xcode 5 - iOS 7 - Appareil!):

itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID

Pour iOS 8 ou version ultérieure:

itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

Extrait de code (vous pouvez simplement le copier-coller):

#define YOUR_APP_STORE_ID 545174222 //Change this one to your ID

static NSString *const iOS7AppStoreURLFormat = @"itms-apps://iTunes.Apple.com/app/id%d";
static NSString *const iOSAppStoreURLFormat = @"itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";

[NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link
334
elibud

Mettre à jour:

Swift 4.0, Xcode 9.1

Testé sur Real Device iOS 11.x (Garantie de travail)

let appID = "Your App ID on App Store"
let urlStr = "itms-apps://iTunes.Apple.com/app/id\(appID)" // (Option 1) Open App Page    
let urlStr = "itms-apps://iTunes.Apple.com/app/viewContentsUserReviews?id=\(appID)" // (Option 2) Open App Review Tab


if let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) {
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    } else {
        UIApplication.shared.openURL(url)
    }
}

openURL (_ :) est obsolète depuis iOS 10.

42
Strong

Tout ce qui est écrit ci-dessus est correct. Juste un exemple à insérer dans l'application et à modifier {VOTRE ID APP} en identifiant d'application réel, extrait d'iTunesconnect pour afficher la page Review. Veuillez noter, comme indiqué ci-dessus, que cela ne fonctionne pas sur le simulateur, mais uniquement sur l'appareil.
- Correction en raison de modifications apportées à iOS 7. 

NSString * appId = @"{YOUR APP ID}";
NSString * theUrl = [NSString  stringWithFormat:@"itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appId];
if ([[UIDevice currentDevice].systemVersion integerValue] > 6) theUrl = [NSString stringWithFormat:@"itms-apps://iTunes.Apple.com/app/id%@",appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl]];
38
ETech

EDIT: Solution iOS 11

C'est la solution à ma réponse initiale (voir ci-dessous). Si vous utilisez iOS 11, le format de lien suivant fonctionnera:

https://iTunes.Apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review

Il suffit de remplacer APP_ID par votre identifiant d'application spécifique. La clé pour que le lien fonctionne est le code de pays. Le lien ci-dessus utilise le code us mais peu importe le code utilisé. L'utilisateur sera automatiquement redirigé vers son magasin. 

Mise à jour iOS 11:

Il semble qu'aucune des solutions présentées dans les autres réponses pour accéder directement à la page de révision ne fonctionne sur iOS 11.  

Le problème le plus probable est qu’une page d’application de l’application iOS 11 App Store n’a plusPAS/ un onglet Révision. Au lieu de cela, les commentaires sont maintenant situés directement sous la description et les captures d'écran. Bien sûr, il pourrait toujours être possible d’atteindre cette section directement (par exemple avec une sorte d’ancre), mais il semble que cela est non pris en charge / prévu par Apple. 

L'utilisation de l'un des liens suivants ne fonctionne plus. Ils amènent toujours les utilisateurs à l’application App Store mais uniquement sur une page vierge :

itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID?action=write-review
itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

Tous les utilisateurs de ces liens doivent mettre à jour leurs applications dès que possible , car le fait de renvoyer les utilisateurs vers une page vierge de l'App Store n'est probablement pas ce que vous vouliez. 

Les liens qui ne font pas référence à la page Review mais à la page App fonctionnent toujours, par ex. 

itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID   (same as above, but without write-review parameter)

Vous pouvez donc toujours amener les utilisateurs sur votre page de magasin d'applications, mais plus directement dans la section des avis. Les utilisateurs doivent maintenant faire défiler manuellement la section de révision pour laisser leurs commentaires. 

Sans la moindre hésitation, il s’agit là d’un "atout majeur pour User Experience, qui aidera les développeurs à inciter les utilisateurs à laisser des avis de qualité sans les ennuyer". Bravo Apple ... 

29
Andrei Herford

Toutes les approches ci-dessus sont correctes, mais de nos jours, utiliser SKStoreProductViewController permet d'améliorer l'expérience utilisateur. Pour l'utiliser, vous devez procéder comme suit: 

  • implémenter SKStoreProductViewControllerDelegate protocole dans le délégué de votre application
  • ajouter la méthode requise productViewControllerDidFinish:

    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
      [viewController dismissViewControllerAnimated: YES completion: nil];
    }
    
  • Vérifiez si la classe SKStoreProductViewController est disponible et affichez-la ou basculez vers l'App Store:

    extern NSString* cAppleID; // must be defined somewhere...
    
    if ([SKStoreProductViewController class] != nil) {
      SKStoreProductViewController* skpvc = [[SKStoreProductViewController new] autorelease];
      skpvc.delegate = self;
      NSDictionary* dict = [NSDictionary dictionaryWithObject: cAppleID forKey: SKStoreProductParameterITunesItemIdentifier];
      [skpvc loadProductWithParameters: dict completionBlock: nil];
      [[self _viewController] presentViewController: skpvc animated: YES completion: nil];
    }
    else {
      static NSString* const iOS7AppStoreURLFormat = @"itms-apps://iTunes.Apple.com/app/id%@";
      static NSString* const iOSAppStoreURLFormat = @"itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
      NSString* url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID];
      [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
    }
    
23
deko

Version Swift 2

func jumpToAppStore(appId: String) {
    let url = "itms-apps://iTunes.Apple.com/app/id\(appId)"
    UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
12
Quanlong

Solution pour iOS 11

Les URL courtes de l'App Store n'ouvrent pas correctement l'interface "écrire un commentaire" dans le nouvel iOS App Store. Par exemple, cela fonctionne pas:

https://iTunes.Apple.com/app/id333903271?mt=8&action=write-review

La solution de contournement consiste à inclure un code de pays à deux lettres et un nom d'application dans l'URL, tels que:

 https: //iTunes.Apple.com/nous/app /Gazouillement/id333903271? mt = 8 & action = write-review 

ou 

 itms-apps: //iTunes.Apple.com/nous/app /Gazouillement/id333903271? mt = 8 & action = write-review 

Vous pouvez obtenir l'URL complète de votre application à partir d'ici: https://linkmaker.iTunes.Apple.com/

Cela ouvre avec succès l'interface "écrire un commentaire" dans iOS 11 App Store.

Edit: Comme @Theo le mentionne ci-dessous, le code du pays n'a pas besoin d'être localisé et le nom de l'application dans l'URL n'a pas besoin d'être mis à jour si le nom de l'application change.

Espérons que Apple résoudra ce problème bientôt pour l'URL plus courte. Voir rdar: // 34498138

11
neave

Tous les liens précédents ne sont plus directement dirigés vers l'onglet "Commentaires",

Ce lien vous dirigera directement vers "l'onglet Commentaires":

https://iTunes.Apple.com/app/viewContentsUserReviews?id=AppID

ou

itms-apps: //iTunes.Apple.com/app/viewContentsUserReviews? id = AppID

11
Satinos

Dans iOS7, l'URL permettant de basculer votre application vers l'App Store à des fins d'évaluation et de révision a été modifiée:

itms-apps://iTunes.Apple.com/app/idAPP_ID

APP_ID doit être remplacé par votre ID d'application.

Pour iOS 6 et les versions antérieures, les URL des réponses précédentes fonctionnent bien.

Source: Appirater

Profitez de codage .. !!

9
iProgrammer

À partir de iOS 10.3, vous pouvez attacher un élément de requête action=write-review à vos URL https://iTunes.Apple.com/... et https://appsto.re/.... Sur iOS 10.3 et les versions ultérieures, Write a review s'ouvrira automatiquement, tandis que sur les versions iOS inférieures, il reviendra à la page App Store de l'application.

Mise à jour iOS 11: Utilisez le linkmaker d’Apple: linkmaker.iTunes.Apple.com et ajoutez &action=write-review, semble être le moyen le plus sûr.

7
rshev

Utiliser cette URL était la solution parfaite pour moi. Il amène l'utilisateur directement au Write a Review section. Crédits à @ Joseph Duffy. DOIS ESSAYER

URL = itms-apps://iTunes.Apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8 Remplacer YOUR_APP_ID_HERE par votre AppId

Pour un exemple de code, essayez ceci:

Swift 3, Xcode 8.2.1:

 let openAppStoreForRating = "itms-apps://iTunes.Apple.com/gb/app/id1136613532?action=write-review&mt=8"
 if UIApplication.shared.canOpenURL(URL(string: openAppStoreForRating)!) {
      UIApplication.shared.openURL(URL(string: openAppStoreForRating)!)
 } else {
      showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
 }

ShowAlert est ici une fonction personnalisée pour une UIAlertController.

7

Il existe une nouvelle façon de faire cela dans iOS 11+ (nouvel App Store). Vous pouvez ouvrir le dialogue "Rédiger un avis" directement.

exemple iOS 11:

itms-apps://iTunes.Apple.com/us/app/id1137397744?action=write-review

ou

https://iTunes.Apple.com/us/app/id1137397744?action=write-review

Remarques:

  • Un code de pays est requis (/us/). Ce peut être n'importe quel code de pays, peu importe.
  • Modifiez l'identifiant de l'application (1137397744) en votre identifiant d'application (obtenez-le à partir de l'URL d'iTunes).
  • Si vous souhaitez prendre en charge les anciennes versions iOS (antérieures à 11), vous souhaiterez que certaines logiques conditionnelles se lient de cette manière uniquement si la version du système d'exploitation est supérieure ou égale à 11.
4
kspearrin

La version de Swift 2 qui vous amène en fait à la page de révision de votre application sous iOS 8 et iOS 9:

let appId = "YOUR_APP_ID"
let url = "itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=\(appId)"

UIApplication.sharedApplication().openURL(NSURL(string: url)!)
4
user3344977

iOS 4 a abandonné la fonction "Taux sur suppression". 

Pour le moment, le seul moyen d'évaluer une application est d'utiliser iTunes.

Modifier: Des liens peuvent être générés vers vos applications via iTunes Link Maker. Ce site a un tutoriel.

4
Kynth
NSString *url = [NSString stringWithFormat:@"https://iTunes.Apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
4
Nikunj Patel

Lien vers une application de l'AppStore via SKStoreProductViewController

Il est facile de se connecter à votre application sur l'App Store via SKStoreProductViewController. Mais j'ai un peu lutté, alors j'ai décidé de montrer ici tout le processus et le code nécessaire. Cette technique garantit également que le bon magasin sera toujours utilisé (important pour les applications localisées).

Pour présenter l'écran de produit de n'importe quelle application de l'App Store dans votre application avec l'une de vos applications, ViewControllers procédez comme suit:

  1. Ajouter le StoreFit.framework dans vos paramètres du projet (Cible, phases de construction -> Lier le binaire avec des bibliothèques
  2. Import StoreKit dans la classe ViewController
  3. Assurez votre ViewController conforme à ce protocole SKStoreProductViewControllerDelegate
  4. Créez la méthode pour présenter StoreView avec l'écran du produit souhaité
  5. Rejeter le StoreView

Mais le plus important: Ceci - pour une raison quelconque - ne fonctionne pas dans le simulateur - vous devez construire et installer sur un appareil réel doté d'une connexion Internet.

  1. Ajouter le StorKit.framework à votre projet:  Find this in your project settings

Swift 4: Ceci est le code selon les étapes décrites ci-dessous:

    // ----------------------------------------------------------------------------------------
// 2. Import StoreKit into the ViewController class
// ----------------------------------------------------------------------------------------
import StoreKit

// ...

// within your ViewController

    // ----------------------------------------------------------------------------------------
    // 4. Create the method to present the StoreView with the product screen you want
    // ----------------------------------------------------------------------------------------
    func showStore() {

        // Define parameter for product (here with ID-Number)
        let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)]

        // Create a SKStoreProduktViewController instance
        let storeViewController : SKStoreProductViewController = SKStoreProductViewController()

        // set Delegate
        storeViewController.delegate = self

        // load product
        storeViewController.loadProduct(withParameters: parameter) { (success, error) in

            if success == true {
                // show storeController
                self.present(storeViewController, animated: true, completion: nil)
            } else {
                print("NO SUCCESS LOADING PRODUCT SCREEN")
                print("Error ? : \(error?.localizedDescription)")
            }
        }
    }

// ...

// ----------------------------------------------------------------------------------------
// 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate
// ----------------------------------------------------------------------------------------
extension ViewController : SKStoreProductViewControllerDelegate {

    // ----------------------------------------------------------------------------------------
    // 5. Dismiss the StoreView
    // ----------------------------------------------------------------------------------------
    func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
        print("RECEIVED a FINISH-Message from SKStoreProduktViewController")
        viewController.dismiss(animated: true, completion: nil)
    }
}
3
LukeSideWalker

J'ai le même problème dans iOS 10 et je pourrais ouvrir la section des taux d'iTunes en appelant:

http://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=7

Fondamentalement, il a changé la dernière URL var "mt = 7"

À votre santé

3
Juanan Jimenez

Pour> = iOS8: (réponse simplifiée @ EliBud).

#define APP_STORE_ID 1108885113

- (void)rateApp{
    static NSString *const iOSAppStoreURLFormat = @"itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";

    NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]];

    if ([[UIApplication sharedApplication] canOpenURL:appStoreURL]) {
        [[UIApplication sharedApplication] openURL:appStoreURL];
    }
}
3
Zaid Pathan

Voici le code que j'utilise dans mon application;

-(void)rateApp {

     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://iTunes.Apple.com/app/" stringByAppendingString: @"id547101139"]]]; 
}
2
Ahmet Hayrullahoglu

citation de Documentation développeur Apple

De plus, vous pouvez continuer à inclure un lien persistant dans le fichier les paramètres ou les écrans de configuration de votre application qui renferment des liens profonds vers votre Page produit de l'App Store. Pour ouvrir automatiquement une page sur laquelle les utilisateurs pouvez écrire une critique dans l'App Store, ajoutez le paramètre de requête action = write-review sur l'URL de votre produit.

Donc, l'URL serait la suivante:

itms-apps: //iTunes.Apple.com/app/idYOUR_APP_ID? action = write-review

2
DanLand

La réponse acceptée n'a pas pu charger l'onglet "Commentaires". J'ai trouvé la méthode ci-dessous pour charger l'onglet "Review" sans l'onglet "Détails".

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"itms-apps://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={APP_ID}&pageNumber=0&sortOrdering=2&mt=8"]];

Remplacez {APP_ID} par votre identifiant d'application.

2
TharakaNirmana

Swift 3

fileprivate func openAppStore() {
        let appId = "YOUR_APP_ID"
        let url_string = "itms-apps://iTunes.Apple.com/app/id\(appId)"
        if let url = URL(string: url_string) {
            UIApplication.shared.openURL(url)
        }
    }
2
Vyacheslav
let rateUrl = "itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID?action=write-review"
 if(UIApplication.shared.canOpenURL(rateUrl)) {
            UIApplication.shared.openURL(rateUrl)
        }
2
shadi abusamra

Cela fonctionne très bien sur iOS 9 - 11.

N'a pas testé sur les versions précédentes.

[NSURL URLWithString:@"https://iTunes.Apple.com/app/idXXXXXXXXXX?action=write-review"];
1
RainKing

Si votre application a été approuvée pour la version bêta et qu'elle n'est pas en direct, le lien de vérification de l'application est disponible, mais il ne sera pas en direct pour laisser des critiques.

  1. Connectez-vous à iTunes Connect
  2. Cliquez sur My Apps
  3. Cliquez sur le App Icon qui vous intéresse
  4. Assurez-vous que vous êtes sur la page App Store 
  5. Allez à la section App Information (cela devrait vous y amener automatiquement)
  6. Au bas de cette page, il y a un lien bleu qui dit View on App Store. Cliquez dessus et cela ouvrira une page vierge. Copiez le contenu de la barre d'URL en haut de la page et le lien vers les critiques de votre application. Ce sera en direct une fois l'application en direct.

 enter image description here

0
Lance Samaria

À partir de iOS 10.3:

import StoreKit

func someFunction() {
 SKStoreReviewController.requestReview()
}

mais sa vient d'être publié avec 10.3, vous aurez donc toujours besoin d'une méthode de secours pour les anciennes versions comme décrit ci-dessus

0
Alex