iphone - saber - olvide mi cuenta de icloud
ITunes revisa la URL y iOS 7(pide al usuario que califique nuestra aplicación) AppStore muestra una página en blanco (12)
A partir de iOS7, la URL ha cambiado y no puede dirigirse a la página de revisión, sino solo a la aplicación.
itms-apps://itunes.apple.com/app/idAPP_ID
Donde APP_ID necesita ser reemplazado con su ID de aplicación. Según la ID de la aplicación de la pregunta, sería la siguiente
itms-apps://itunes.apple.com/app/id353372460
Observe la identificación delante del número ... esa cadena es id 353372460, no solo 353372460
Para todo lo anterior a iOS7, se debe usar la "antigua" URL, solo aquellas podrían llevarlo directamente a la página de revisión. También debe tener en cuenta que estas llamadas solo funcionarán en los dispositivos . Ejecutarlos en el simulador no hará nada, ya que el simulador no tiene instalada la aplicación App Store.
Eche un vistazo, por ejemplo, a Appirater para una implementación. https://github.com/arashpayan/appirater
No puedo ayudarte con las especificaciones del teléfono (nunca lo usaste). Pero básicamente se trata de verificar la versión de iOS que está ejecutando su usuario y luego usar la URL anterior o la nueva URL de iOS7.
¿Alguien sabe si la técnica utilizada para pedirle al usuario que califique nuestra aplicación y abrir para él la App Store directamente en la página de calificación todavía está funcionando en iOS 7?
Solía abrir esta url desde mi aplicación:
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=353372460&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
Pero parece que ya no funciona (AppStore muestra una página en blanco). También probé esta URL sin suerte:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=353372460
El enlace de revisión una vez más se ha roto en iOS9. Al hacer algo de experimentación, descubrí que Apple lo revertía a cómo era antes de iOS7. Entonces tienes que hacer:
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=247423477&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
Donde 247423477
es su ID de aplicación de 9 dígitos (la principal diferencia es que debe agregar &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
después de la ID de la aplicación).
Esto funciona por mi parte (Xcode 5 - iOS 7 - Dispositivo !):
itms-apps://itunes.apple.com/app/idYOUR_APP_ID
Para versiones inferiores a iOS 7, use el anterior:
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
La página de revisión de apertura directamente desde la aplicación es posible en iOS7. Por favor use la siguiente url ...
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
Esto definitivamente funcionará ... :)
La siguiente URL funciona perfectamente en iOS 7.1:
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=xxxxxxxx&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8
donde xxxxxxxx
es su ID de aplicación.
ACTUALIZAR . Funciona en iOS 9.3.4 y iOS 10 GM (por Jeet)
No está claro con qué versiones de iOS es compatible, pero como parte de iOS 10.3 hay un nuevo parámetro de consulta que se puede agregar a la URL: action=write-review
. He probado esto en iOS 10.2 y 9.3.5 y funciona. Sin embargo, no funciona en iOS 7.1.2, por lo que se agregó compatibilidad entre iOS 8.0 y 9.3.5. ¡Se requiere investigación adicional!
Ejemplo: https://itunes.apple.com/app/id929726748?action=write-review&mt=8
Esto abrirá el diálogo "Escribir una opinión" , en lugar de solo mostrar la pestaña de revisión.
Se dice que este error se solucionará en iOS7.1. Lea aquí en el foro de corona, y aquí en iPhoneDevSDK .
Tengo esto para obtener el ID de producto automáticamente y generar enlaces de la página App Store Review y Product Store .
- (void) getAppStoreLinks {
productID = [[NSUserDefaults standardUserDefaults] objectForKey:@"productID"]; //NSNumber instance variable
appStoreReviewLink = [[NSUserDefaults standardUserDefaults] objectForKey:@"appStoreReviewLink"]; //NSString instance variable
appStoreLink = [[NSUserDefaults standardUserDefaults] objectForKey:@"appStoreLink"]; //NSString instance variable
if (!productID || !appStoreReviewLink || !appStoreLink) {
NSString *iTunesServiceURL = [NSString stringWithFormat:@"https://itunes.apple.com/lookup?bundleId=%@", [NSBundle mainBundle].bundleIdentifier];
NSURLSession *sharedSes = [NSURLSession sharedSession];
[[sharedSes dataTaskWithURL:[NSURL URLWithString:iTunesServiceURL]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;
if (data && statusCode == 200) {
id json = [[NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingOptions)0 error:nil][@"results"] lastObject];
//productID should be NSNumber but integerValue also work with NSString
productID = json[@"trackId"];
if (productID) {
appStoreReviewLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%d&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8",productID.integerValue];
appStoreLink = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%d",productID.integerValue];
[[NSUserDefaults standardUserDefaults] setObject:productID forKey:@"productID"];
[[NSUserDefaults standardUserDefaults] setObject:appStoreReviewLink forKey:@"appStoreReviewLink"];
[[NSUserDefaults standardUserDefaults] setObject:appStoreLink forKey:@"appStoreLink"];
}
} else if (statusCode >= 400) {
NSLog(@"Error:%@",error.description);
}
}
] resume];
}
}
Abrir la página de revisión de la aplicación
- (IBAction) rateButton: (id)sender {
NSString *appStoreReviewLink = appStoreReviewLink;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewLink]];
}
Abra la página App Store de la aplicación
- (IBAction) openAppPageButton: (id)sender {
NSString *appStoreLink = appStoreLink;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: appStoreLink]];
}
Todas las respuestas anteriores ya han quedado obsoletas (iOS 7, pero pueden funcionar), por lo tanto, proporciono la nueva forma en que Apple recomienda proporcionar enlaces a las aplicaciones. El enlace para su aplicación es el de iTunes (use Copy Link), este se recomienda para usar en el código:
Swift 3.0
let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8")
UIApplication.shared.open(path!)
O mejor: trate la opción de manera correcta y controle la posibilidad de no poder acceder al enlace:
if let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8") {
UIApplication.shared.open(path) {
(didOpen:Bool) in
if !didOpen {
print("Error opening:/(path.absoluteString)")
}
}
}
C objetivo
#define APP_URL_STRING @"https://itunes.apple.com/us/app/calcfast/id876781417?mt=8"
luego puedes llamar a APP_URL_STRING
en tu código:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: APP_URL_STRING] options:@{} completionHandler:nil];
Tenga en cuenta que esta es la forma recomendada ahora por Apple, ya que el método anterior de procesamiento de enlaces de redireccionamiento ha quedado obsoleto y no es compatible.
El enlace para todas sus aplicaciones, si tiene más de una:
#define MYCOMPANY_URL_PATH @"http://appstore.com/mycompany"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: MYCOMPANY_URL_PATH] options:@{} completionHandler:nil];
El enlace de la aplicación anterior se recomienda para su uso en código o enlaces que el usuario no ve directamente. Si desea proporcionar un enlace que pueda ser visto y recordado por el usuario, utilice lo siguiente: http://appstore.com/calcfast
Usar esta URL fue la solución perfecta para mí. Lleva al usuario directamente a la Write a Review section
. Créditos a @Joseph Duffy.
Para un código de muestra prueba esto:
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!!")
}
Aquí showAlert es una función personalizada para un UIAlertController
.
Opción simple de una línea de código: ** También vea los comentarios de simulador a continuación **
http://itunes.apple.com/app/idAPP_ID
EDITAR: ahora que iOS 7.1 permite el enlace directo a la pestaña de Revisiones en la App Store, vale la pena invertir las líneas adicionales de código para llegar directamente: ver otras respuestas para el resto.
aquí estamos usando http:
lugar de itms-apps:
deje que iOS haga el resto del trabajo
Obtengo los mismos resultados de prueba en dispositivos iOS 6.1 y 7 (iPad / iPhone / iPod touch 4)
Específicamente, este acceso directo para iOS 6 lleva al usuario a la pestaña Details
y no a la pestaña Reviews
.
El enlace del Purple+Software
lleva al usuario a la pestaña de Revisiones en iOS 6, que obviamente es preferible si sabe cómo verificar el sistema operativo.
Nota importante : Esto causará un error en el simulador para iOS 5.1, 6.1 y 7.
No se puede abrir la página Safari no puede abrir la página porque la dirección no es válida (sabemos que es una URL válida fuera del simulador, en cualquier navegador)
Para que quede claro : en iOS 7: http://
ofrece la misma experiencia que itms-apps:
sin demora notable.
* tenga en cuenta que el comportamiento del simulador se mencionó anteriormente. Esto no es completamente diferente de intentar acceder a la cámara a través de un simulador: el simulador no es el lugar para probarlo. *
+ (NSString *)getReviewUrlByAppId:(int)appId
{
NSString *templateReviewURL = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APP_ID";
NSString *templateReviewURLiOS7 = @"itms-apps://itunes.apple.com/app/idAPP_ID";
NSString *templateReviewURLiOS8 = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software";
//ios7 before
NSString *reviewURL = [templateReviewURL stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
// iOS 7 needs a different templateReviewURL @see https://github.com/arashpayan/appirater/issues/131
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1)
{
reviewURL = [templateReviewURLiOS7 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
}
// iOS 8 needs a different templateReviewURL also @see https://github.com/arashpayan/appirater/issues/182
else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
reviewURL = [templateReviewURLiOS8 stringByReplacingOccurrencesOfString:@"APP_ID" withString:[NSString stringWithFormat:@"%d", appId]];
}
return reviewURL;
}