para - iphone store
App store link para "calificar/revisar esta aplicaciĆ³n" (24)
Quiero poner una función de "calificar / revisar esta aplicación" en mi aplicación.
¿Hay alguna forma de vincular directamente a la pantalla en la tienda de aplicaciones donde revisan la aplicación? Entonces, el cliente no tiene que hacer clic en el enlace principal de la aplicación. Gracias.
EDITAR: comienza una recompensa por esto debido a la falta de respuesta. Solo para asegurarme de que es muy claro: soy consciente de que puedo vincular la página de mi aplicación en la tienda y pedirle al usuario que haga clic desde allí en la pantalla "revisar esta aplicación". La pregunta es si es posible vincular directamente a la pantalla "revisar esta aplicación" para que no tengan que hacer clic en nada.
Solución para iOS 11
Las URL cortas de la tienda de aplicaciones no abren correctamente la interfaz "escribir una reseña" en la nueva tienda de aplicaciones iOS 11. Por ejemplo, esto no funciona:
https://itunes.apple.com/app/id333903271?mt=8&action=write-review
La solución consiste en incluir un código de país de dos letras y el nombre de la aplicación en la URL, como este:
https://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
o
itms-apps://itunes.apple.com/us/app/twitter/id333903271?mt=8&action=write-review
Puede obtener la URL completa de su aplicación desde aquí: https://linkmaker.itunes.apple.com/
Esto abre con éxito la interfaz "escribir una reseña" en la App Store de iOS 11.
Editar: como @Theo menciona a continuación, el código de país no necesita ser localizado y el nombre de la aplicación en la URL no necesita ser actualizado si el nombre de la aplicación cambia.
Con suerte, Apple arreglará esto pronto para la URL más corta. Ver openradar.appspot.com/34498138
Enlace a cualquier aplicación en la AppStore a través de SKStoreProductViewController
Es fácil vincular su aplicación en la tienda de aplicaciones a través de SKStoreProductViewController. Pero luché un poco, así que decidí mostrar aquí todo el proceso y algunos códigos necesarios. Esta técnica también asegura que siempre se use la tienda correcta (importante para aplicaciones localizadas).
Para presentar la pantalla del producto de cualquier aplicación de la tienda de aplicaciones dentro de su aplicación con cualquiera de sus aplicaciones, ViewControllers siga estos pasos:
- Agregue StoreFit.framework en la configuración de su proyecto (Target, Build Fases -> Link Binary With Libraries
- Importar StoreKit en la clase ViewController
- Haga que su ViewController cumpla con este protocolo SKStoreProductViewControllerDelegate
- Cree el método para presentar StoreView con la pantalla del producto que desea
- Descartar el StoreView
Pero lo más importante: esto, por alguna razón, no funciona en el simulador, debe compilar e instalar en un dispositivo real con conectividad a Internet.
SWIFT 4: este es el código de acuerdo con los pasos descritos a continuación:
// ----------------------------------------------------------------------------------------
// 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)
}
}
A partir de iOS 10.3 puede adjuntar action=write-review
query item a sus https://itunes.apple.com/...
y https://appsto.re/...
URLs. En iOS 10.3 y posteriores se abrirá Write a review
automáticamente, mientras que en versiones anteriores de iOS volverá a la página de la App Store de la aplicación.
Actualización de iOS 11 : utilice el enlazador de Apple: https://linkmaker.itunes.apple.com/ y append &action=write-review
, parece ser la forma más segura de hacerlo.
A partir de iOS 10.3:
import StoreKit
func someFunction() {
SKStoreReviewController.requestReview()
}
pero se acaba de lanzar con 10.3, por lo que todavía necesitará algún método alternativo para versiones anteriores como se describió anteriormente
Aquí está el código que estoy usando en mi aplicación;
-(void)rateApp {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]];
}
En iOS7, la URL que cambia su aplicación a la App Store por la tasa y la revisión ha cambiado:
itms-apps://itunes.apple.com/app/idAPP_ID
Donde APP_ID necesita ser reemplazado con su ID de aplicación.
Para iOS 6 y versiones anteriores, la URL en respuestas anteriores funciona bien.
Fuente: Appirater
Disfruta Codificación .. !!
Estoy teniendo el mismo problema en iOS 10 y podría abrir la sección de tarifas de iTunes llamando:
Básicamente cambió la última URL var a "mt = 7"
Aclamaciones
Hay una nueva forma de hacerlo en iOS 11+ (nueva tienda de aplicaciones). Puede abrir el diálogo "Escribir una reseña" directamente.
Ejemplo de iOS 11:
itms-apps://itunes.apple.com/us/app/id1137397744?action=write-review
o
https://itunes.apple.com/us/app/id1137397744?action=write-review
Notas:
- openradar.appspot.com/34498138 (
/us/
). Puede ser cualquier código de país, no importa. - Cambia la identificación de la aplicación (
1137397744
) a la ID de tu aplicación (1137397744
de la URL de iTunes). - Si desea admitir una versión anterior de iOS (pre 11), querrá que la lógica condicional solo se vincule de esta manera si la versión del sistema operativo es mayor o igual a 11.
La respuesta aceptada no pudo cargar la pestaña "Revisiones". Encontré el siguiente método para cargar la pestaña "Revisar" sin la pestaña "Detalles".
[[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"]];
Reemplace {APP_ID}
con la id de su aplicación de tienda de aplicaciones.
La versión de Swift 2 que realmente lo lleva a la página de revisión de su aplicación tanto en iOS 8 como en 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)!)
Para> = iOS8: (respuesta simplificada de @ 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];
}
}
Todo, escrito arriba es correcto. Solo una muestra para insertar en la aplicación y cambiar {YOUR APP ID} a la identificación de la aplicación real, tomada de iTunesconnect para mostrar la página de revisión. Tenga en cuenta, como se comentó anteriormente, que no está funcionando en el simulador, solo el dispositivo.
- Corrección debido a cambios de 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]];
Todos los enfoques anteriores son correctos, pero hoy en día el uso de SKStoreProductViewController mejora la experiencia del usuario. Para usarlo, debes hacer lo siguiente:
- implementar el protocolo SKStoreProductViewControllerDelegate en su delegado de aplicación
agregue el método requerido de ProductViewControllerDidFinish :
- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController { [viewController dismissViewControllerAnimated: YES completion: nil]; }
Compruebe si la clase SKStoreProductViewController está disponible y muéstrela o cambie a 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]]; }
Todos los enlaces anteriores no más directamente a la pestaña "Revisiones",
Este enlace dirigiría directamente a la "Pestaña de Revisiones":
https://itunes.apple.com/app/viewContentsUserReviews?id=AppID
o
itms-apps: //itunes.apple.com/app/viewContentsUserReviews? id = ID de aplicación
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. DEBERÍAS INTENTAR
URL = itms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8
Reemplace YOUR_APP_ID_HERE con su AppId
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
.
cita de Apple Developer Documentation
Además, puede continuar incluyendo un enlace persistente en la configuración o pantallas de configuración de su aplicación que se enlaza a su página de productos de la Tienda de aplicaciones. Para abrir automáticamente una página en la que los usuarios pueden escribir una reseña en App Store, anexe el parámetro de consulta action = write-review a la URL de su producto.
Entonces la URL sería la siguiente:
itms-apps: //itunes.apple.com/app/id YOUR_APP_ID ? action = write-review
iOS 4 ha eliminado la función "Rate on Delete".
Por el momento, la única manera de calificar una aplicación es a través de iTunes.
Editar: se pueden generar enlaces a sus aplicaciones a través de iTunes Link Maker. Este sitio tiene un tutorial.
func jumpToAppStore(appId: String) {
let url = "itms-apps://itunes.apple.com/app/id/(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
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
Esto funciona por mi parte (Xcode 5 - iOS 7 - Dispositivo !):
itms-apps://itunes.apple.com/app/idYOUR_APP_ID
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
Fragmento de código (puede copiarlo y pegarlo):
#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
Actualizar:
Swift 4.0, Xcode 9.1
Probado en Real Device iOS 11.x (Garantía para trabajar)
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á en desuso de iOS 10.
EDITAR: Solución iOS 11
Esta es la solución a mi respuesta original (ver a continuación). Al usar el iOS 11, el siguiente formato de enlace funcionará:
https://itunes.apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review
Simplemente reemplace APP_ID
con su ID de aplicación específica. La clave para hacer que el enlace funcione es el código de país . El enlace de arriba usa el código us
pero en realidad no importa qué código se usa. El usuario será redirigido automáticamente a su tienda.
Actualización de iOS 11:
Parece que ninguna de las soluciones presentadas en las otras respuestas para acceder directamente a la Página de Revisión funciona en iOS 11.
El problema más probable es que una página de aplicación en la aplicación App Store de iOS 11 ya no tenga una pestaña de revisión. En cambio, las revisiones ahora se encuentran directamente debajo de la descripción y las capturas de pantalla. Por supuesto, todavía podría ser posible llegar a esta sección directamente (por ejemplo, con algún tipo de ancla), pero parece que Apple no lo admite ni pretende.
El uso de uno de los siguientes enlaces ya no funciona. Todavía traen a los usuarios a la aplicación App Store, pero solo a una página en blanco :
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
Todos los usuarios que todavía utilicen estos enlaces deberían actualizar sus aplicaciones lo más rápido posible , ya que es muy probable que remitir a los usuarios a una página en blanco de la App Store no sea la que pretendían.
Sin embargo, los enlaces que no hacen referencia a la página de Revisión sino a la página de la Aplicación todavía funcionan, por ejemplo
itms-apps://itunes.apple.com/app/idYOUR_APP_ID (same as above, but without write-review parameter)
Por lo tanto, aún puedes llevar a los usuarios a la página de la tienda de aplicaciones, pero no directamente a la sección de revisión. Los usuarios ahora tienen que desplazarse hacia abajo a la sección de revisión de forma manual para dejar sus comentarios.
Sin dudas, este es un "gran e increíble beneficio para la experiencia del usuario y ayudará a los desarrolladores a involucrar a los usuarios para que dejen comentarios de alta calidad sin molestarlos". Bien hecho Apple ...
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)
}
}
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
let rateUrl = "itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review"
if(UIApplication.shared.canOpenURL(rateUrl)) {
UIApplication.shared.openURL(rateUrl)
}