webentwicklung-frage-antwort-db.com.de

App Store-Link für "Diese App bewerten/bewerten"

Ich möchte eine Funktion zum Bewerten/Überprüfen dieser App in meine App einfügen.

Gibt es eine Möglichkeit, direkt auf den Bildschirm im App Store zu verweisen, auf dem sie die App überprüfen? Der Kunde muss also nicht durch den Hauptlink der App klicken. Vielen Dank.

BEARBEITEN: Beginne diesbezüglich wegen mangelnder Reaktion. Nur um sicher zu gehen, dass alles klar ist: Ich bin mir bewusst, dass ich auf die Seite meiner App im Store zugreifen kann und den Benutzer auffordern kann, von dort auf den Bildschirm "Diese App überprüfen" zu klicken. Die Frage ist, ob es möglich ist, direkt auf den Bildschirm "Diese App überprüfen" zuzugreifen, damit sie nichts anklicken müssen.

176

Für Versionen unter iOS 7 die alte Version verwenden:

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

Das funktioniert an meinem Ende (Xcode 5 - iOS 7 - Device!):

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

Für iOS 8 oder höher:

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

Code-Snippet (Sie können es einfach kopieren und einfügen):

#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

Update:

Swift 4.0, Xcode 9.1

Getestet auf Echtgerät iOS 11.x (Garantie für die Arbeit)

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 (_ :) ist seit iOS 10 veraltet.

42
Strong

Alles, was oben geschrieben wurde, ist richtig. Sie müssen lediglich ein Beispiel in die App einfügen und {IHRE APP-ID} in die tatsächliche App-ID ändern, die von iTunesconnect zur Anzeige der Überprüfungsseite verwendet wird. Bitte beachten Sie, da es oben kommentiert wurde, dass es auf dem Simulator nicht funktioniert - nur das Gerät.
- Korrektur wegen Änderungen von 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: iOS 11 Lösung

Dies ist die Lösung zu meiner ursprünglichen Antwort (siehe unten). Bei Verwendung von iOS 11 funktioniert das folgende Linkformat:

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

Ersetzen Sie einfach APP_ID durch Ihre spezifische App-ID. Der Schlüssel für die Verknüpfung ist der Ländercode . Der obige Link verwendet den us-Code, es spielt jedoch keine Rolle, welcher Code verwendet wird. Der Benutzer wird automatisch zu seinem Geschäft weitergeleitet. 

iOS 11 Update:

Es scheint, dass keine der Lösungen, die in den anderen Antworten vorgestellt wurden, direkt zur Überprüfungsseite führt, auf iOS 11 funktioniert.  

Das Problem ist höchstwahrscheinlich, dass eine App-Seite in der App für iOS 11 App StoreNICHTeinen Überprüfungs-Tab mehr hat. Stattdessen befinden sich die Bewertungen jetzt direkt unter der Beschreibung und den Screenshots. Natürlich kann es immer noch möglich sein, diesen Abschnitt direkt zu erreichen (z. B. mit einer Art Anker), aber es scheint, dass dies nicht unterstützt / von Apple beabsichtigt ist. 

Die Verwendung eines der folgenden Links funktioniert nicht mehr. Sie bringen die Benutzer immer noch zur App Store App aber nur zu einer leeren Seite :

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

Jeder, der diese Links noch verwendet, sollte seine Apps so bald wie möglich aktualisieren , weil das Verweisen der Benutzer auf eine leere App Store-Seite höchstwahrscheinlich nicht Ihren Vorstellungen entspricht. 

Links, die nicht auf die Überprüfungsseite, sondern auf die App-Seite verweisen, funktionieren jedoch weiterhin, z. 

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

So können Sie die Benutzer immer noch auf Ihre Apps Store-Seite bringen, jedoch nicht mehr direkt auf den Überprüfungsbereich. Benutzer müssen nun manuell zum Überprüfungsbereich blättern, um ihr Feedback zu hinterlassen. 

Ohne Frage ist dies ein "großer und großartiger Vorteil für User Experience und hilft Entwicklern, Benutzer dazu zu bringen, qualitativ hochwertige Bewertungen zu hinterlassen, ohne sie zu stören". Gut gemacht, Apple ... 

29
Andrei Herford

Alle obigen Ansätze sind korrekt, aber heutzutage führt die Verwendung von SKStoreProductViewController zu einer besseren Benutzererfahrung. Um es zu benutzen, musst du Folgendes tun: 

  • implementieren Sie SKStoreProductViewControllerDelegate protocol in Ihrem App-Delegierten
  • fügen Sie die erforderliche productViewControllerDidFinish -Methode hinzu:

    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
      [viewController dismissViewControllerAnimated: YES completion: nil];
    }
    
  • Prüfen Sie, ob die Klasse SKStoreProductViewController verfügbar ist, und zeigen Sie sie entweder an oder wechseln Sie in den 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

Swift 2 Version

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

Lösung für iOS 11

Kurze App Store-URLs öffnen die Benutzeroberfläche "Write a Review" im neuen iOS 11 App Store nicht richtig. Dies funktioniert beispielsweise nicht:

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

Die Problemumgehung besteht darin, der URL einen aus zwei Buchstaben bestehenden Ländercode und einen App-Namen hinzuzufügen, z.

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

oder 

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

Die vollständige URL Ihrer App finden Sie hier: https://linkmaker.iTunes.Apple.com/

Dadurch wird die Benutzeroberfläche "Write a Review" im iOS 11 App Store erfolgreich geöffnet.

Edit: Wie @Theo unten erwähnt, muss der Ländercode nicht lokalisiert werden und der App-Name in der URL muss nicht aktualisiert werden, wenn sich der App-Name ändert.

Hoffentlich wird Apple dies in Kürze für die kürzere URL beheben. Siehe rdar: // 34498138

11
neave

Alle vorherigen Links nicht mehr direkt auf die Registerkarte "Bewertungen",

Dieser Link verweist direkt auf den Tab "Bewertungen":

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

oder

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

11
Satinos

In iOS7 hat sich die URL, die Ihre App für den Preis und die Überprüfung zum App Store wechselt, geändert:

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

Wo APP_ID durch Ihre Anwendungs-ID ersetzt werden muss.

Bei iOS 6 und älter funktioniert die URL in den vorherigen Antworten einwandfrei.

Quelle: Appirater

Viel Spaß beim Codieren .. !!

9
iProgrammer

Ab iOS 10.3 können Sie action=write-review-Abfrageelement an Ihre https://iTunes.Apple.com/...- und https://appsto.re/...-URLs anhängen. Ab iOS 10.3 wird automatisch Write a review geöffnet, während bei niedrigeren iOS-Versionen auf die App Store-Seite der App zurückgegriffen wird.

iOS 11 Update: Apple-Linkmaker verwenden: linkmaker.iTunes.Apple.com und &action=write-review anhängen, scheint der sicherste Weg zu sein.

7
rshev

Die Verwendung dieser URL war die perfekte Lösung für mich. Der Benutzer gelangt direkt zum Write a Review section. Kredite an @Joseph Duffy. MÜSSEN VERSUCHEN

URL = itms-apps://iTunes.Apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8 Ersetzen Sie YOUR_APP_ID_HERE durch Ihre AppId .

Für einen Beispielcode versuchen Sie folgendes:

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!!")
 }

Hier ist showAlert eine benutzerdefinierte Funktion für eine UIAlertController.

7

Es gibt einen neuen Weg, dies in iOS 11+ (neuer App Store) zu tun. Sie können den Dialog "Bewertung schreiben" direkt öffnen.

iOS 11 Beispiel:

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

oder

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

Anmerkungen:

  • Ein Ländercode ist erforderlich (/us/). Es kann ein beliebiger Ländercode sein, spielt keine Rolle.
  • Ändern Sie die App-ID (1137397744) in Ihre App-ID (rufen Sie die iTunes-URL ab).
  • Wenn Sie eine ältere iOS-Version (vor Version 11) unterstützen möchten, sollten Sie eine Konditionslogik nur auf diese Weise herstellen, wenn die Betriebssystemversion 11 oder höher ist.
4
kspearrin

Swift 2-Version, mit der Sie auf iOS 8 und iOS 9 zur Überprüfungsseite Ihrer App gelangen:

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 hat die Funktion "Rate on Delete" aufgegeben. 

Derzeit ist die einzige Möglichkeit, eine Anwendung zu bewerten, über iTunes.

Bearbeiten: Über iTunes Link Maker können Links zu Ihren Anwendungen erstellt werden. Diese Seite hat ein Tutorial.

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

Verknüpfen Sie mit SKStoreProductViewController eine beliebige App im AppStore

Über SKStoreProductViewController können Sie Ihre App im App Store einfach verlinken. Aber ich habe mich ein bisschen schwer getan, also habe ich mich entschieden, hier den gesamten Prozess und den nötigen Code zu zeigen. Diese Technik stellt außerdem sicher, dass immer der richtige Speicher verwendet wird (wichtig für lokalisierte Apps).

Um den Produktbildschirm einer App des App Stores innerhalb Ihrer App mit einer Ihrer Apps anzuzeigen, führen Sie ViewControllers folgendermaßen aus:

  1. Add das StoreFit.framework in Ihrem Projekteinstellungen (Ziel, Phasen erstellen -> Binär mit Bibliotheken verknüpfen
  2. Import StoreKit in die ViewController-Klasse
  3. Stellen Sie sicher, dass Ihr ViewController diesem Protokoll entspricht SKStoreProductViewControllerDelegate
  4. Erstellen Sie die Methode für präsentiert StoreView mit dem gewünschten Produktbildschirm
  5. Ablehnen der StoreView

Aber am wichtigsten: Dies funktioniert aus irgendeinem Grund nicht im Simulator - Sie müssen ein echtes Gerät mit Internetverbindung aufbauen und installieren.

  1. Das StorKit.framework zu Ihrem Projekt hinzufügen:  Find this in your project settings

Swift 4: Dies ist der Code gemäß den beschriebenen Schritten:

    // ----------------------------------------------------------------------------------------
// 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

Ich habe das gleiche Problem in iOS 10 und könnte den iTunes-Tarifabschnitt öffnen.

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

Grundsätzlich wurde die letzte URL var in "mt = 7" geändert.

Prost

3
Juanan Jimenez

Für> = iOS8: (Antwort von Simplified @ 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

Hier ist der Code, den ich in meiner App verwende.

-(void)rateApp {

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

zitat aus Apple Developer Documentation

Darüber hinaus können Sie weiterhin einen permanenten Link in die .__ einfügen. Einstellungen oder Konfigurationsbildschirme Ihrer App, die mit Ihrem .__ verknüpft sind. App Store-Produktseite. So öffnen Sie automatisch eine Seite, auf der Benutzer kann eine Überprüfung im App Store schreiben, den Abfrageparameter anhängen action = Überprüfung Ihrer Produkt-URL.

Die URL wäre also die folgende:

itms-apps: //iTunes.Apple.com/app/idYOUR_APP_ID? action = Write-Review

2
DanLand

Die akzeptierte Antwort konnte die Registerkarte "Reviews" nicht laden. Ich habe unten eine Methode gefunden, um die Registerkarte "Überprüfen" ohne die Registerkarte "Details" zu laden.

[[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"]];

Ersetzen Sie {APP_ID} durch die App-App-App-App-App.

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

Dies funktioniert gut unter iOS 9 - 11.

Wurde nicht in früheren Versionen getestet.

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

Wenn Ihre App für die Beta-Version genehmigt wurde und nicht live ist, ist der Link zur App-Überprüfung verfügbar. Es ist jedoch nicht möglich, Bewertungen zu hinterlassen.

  1. Anmelden bei iTunes Connect
  2. Klicken Sie auf My Apps
  3. Klicken Sie auf den App Icon, an dem Sie interessiert sind
  4. Stellen Sie sicher, dass Sie sich auf der Seite App Store befinden 
  5. Gehen Sie zum Abschnitt App Information (es sollte Sie automatisch dorthin bringen)
  6. Am Ende dieser Seite befindet sich ein blauer Link mit der Aufschrift View on App Store. Klicken Sie darauf und es öffnet sich eine leere Seite. Kopieren Sie den Inhalt der URL-Leiste oben auf der Seite. Dies ist der Link zu Ihren App-Bewertungen. Es wird live sein, sobald die App live ist.

 enter image description here

0
Lance Samaria

Ab iOS 10.3 beginnen:

import StoreKit

func someFunction() {
 SKStoreReviewController.requestReview()
}

es wurde jedoch gerade mit 10.3 veröffentlicht. Daher benötigen Sie für ältere Versionen immer noch eine Fallback-Methode

0
Alex