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.
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
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.
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]];
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 ...
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:
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]];
}
func jumpToAppStore(appId: String) {
let url = "itms-apps://iTunes.Apple.com/app/id\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
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
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
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 .. !!
À 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.
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
.
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:
/us/
). Ce peut être n'importe quel code de pays, peu importe.1137397744
) en votre identifiant d'application (obtenez-le à partir de l'URL d'iTunes).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)!)
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.
NSString *url = [NSString stringWithFormat:@"https://iTunes.Apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
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:
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.
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)
}
}
J'ai le même problème dans iOS 10 et je pourrais ouvrir la section des taux d'iTunes en appelant:
Fondamentalement, il a changé la dernière URL var "mt = 7"
À votre santé
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];
}
}
Voici le code que j'utilise dans mon application;
-(void)rateApp {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://iTunes.Apple.com/app/" stringByAppendingString: @"id547101139"]]];
}
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
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.
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)
}
}
let rateUrl = "itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID?action=write-review"
if(UIApplication.shared.canOpenURL(rateUrl)) {
UIApplication.shared.openURL(rateUrl)
}
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"];
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.
iTunes Connect
My Apps
App Icon
qui vous intéresseApp Store
App Information
(cela devrait vous y amener automatiquement)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.À 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