URL ulasan iTunes dan iOS 7 (minta pengguna menilai aplikasi kami) AppStore menampilkan halaman kosong

158

Apakah ada yang tahu jika teknik yang digunakan untuk meminta pengguna untuk menilai aplikasi kami dan membukanya App Store langsung di halaman peringkat masih bekerja di iOS 7?

Saya dulu membuka url ini dari aplikasi saya:

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

Tapi sepertinya itu tidak berfungsi lagi (AppStore menunjukkan halaman kosong). Saya juga mencoba url ini tanpa keberuntungan:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=353372460
Samuel
sumber
Setelah melihat kode sumber UAAppReviewManager, sepertinya memang ada pb dengan iOS7. Jadi mereka menggunakan URL App standar, sehingga pengguna perlu mencari tombol tingkat: - /
Samuel
Sepertinya tautan ulasan untuk ios 7 tidak berfungsi. Saya akan mengubah kode saya ke url tautan aplikasi reguler. Pengguna harus mengklik tombol review.
Emmy
4
Tautan kedua yang Anda poskan sekarang berfungsi di iOS 7! Ke kanan ke halaman ulasan
Maximilian Litteral
untuk saya .... URL pertama tampaknya berfungsi. Saya baru saja mengganti nomor id saya
Nilesh Kumar

Jawaban:

198

Dimulai dengan iOS7 URL telah berubah dan tidak dapat mengarahkan untuk halaman ulasan tetapi hanya untuk aplikasi

itms-apps://itunes.apple.com/app/idAPP_ID

Di mana APP_ID perlu diganti dengan ID Aplikasi Anda. Berdasarkan ID Aplikasi dari pertanyaan, pertanyaannya adalah sebagai berikut

itms-apps://itunes.apple.com/app/id353372460

Perhatikan id di depan nomor ... string itu adalah id 353372460, bukan hanya 353372460

Untuk apa pun sebelum iOS7, URL 'lama' perlu digunakan, hanya yang bisa mengarahkan Anda langsung ke halaman ulasan. Anda juga harus memperhatikan bahwa panggilan ini hanya akan berfungsi pada perangkat . Menjalankan mereka di simulator tidak akan melakukan apa-apa karena simulator tidak memiliki aplikasi App Store yang diinstal.


Lihat misalnya Appirater untuk implementasi. https://github.com/arashpayan/appirater

Tidak dapat membantu Anda dengan spesifik phonegap (tidak pernah menggunakannya). Tetapi pada dasarnya turun untuk memeriksa versi iOS yang dijalankan pengguna Anda dan kemudian menggunakan URL lama atau kemudian URL iOS7 baru.

jujur
sumber
18
Sebenarnya ini membuka aplikasi dan bukan tab ulasan.
Idan
3
Ya itu benar, tetapi di bawah iOS7 untuk saat ini itulah yang terbaik yang dapat dicapai saat ini.
Frank
Aplikasi Facebook baru menunjukkan halaman toko aplikasi di dalam aplikasi itu sendiri di iOS 7. Adakah yang tahu bagaimana mereka melakukannya?
EricS
1
Tidak seperti di iRate, Anda HARUS menggunakan tautan di atas dengan informasi / LANGUAGE / app / idAPP_ID
Dan
6
Anda ingin menghapus bahasa, Appirater juga memiliki masalah yang sama jika perangkat diatur ke bahasa yang tidak sama dengan iTunes store Anda mendapatkan halaman kosong (misalnya bahasa Inggris Inggris), jika Anda menghapus sedikit bahasa itu masih berfungsi dan toko terbuka dalam bahasa pemilik.
Chris
166

URL berikut berfungsi dengan baik di iOS 7.1:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=xxxxxxxx&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8

Dimana xxxxxxxx ID aplikasi Anda.

PEMBARUAN . Bekerja di iOS 9.3.4 dan iOS 10 GM (oleh Jeet)

mkll
sumber
5
Ini rusak lagi di 8.0 DP 5! Laporkan sekarang sebagai bug dan berharap kami dapat memperbaikinya dengan rilis produksi.
Cliff Ribaudo
6
Berfungsi bagi saya untuk langsung ke halaman ulasan App Store.app. Dibangun dengan Xcode 6. Diverifikasi di iOS 8.0, iOS 7.1.2, iPhone 5 dan iPhone 4.
jclee
7
Saya menemukan. Ketik harus selalu sama dengan perangkat lunak ungu - ini adalah masalah apel.
Matt Parkins
2
Ini berfungsi dengan baik di iPhone dan iPad di iOS 8.3. Baru diuji :) Terima kasih!
Sendiri
2
Berfungsi dengan baik di iPod Gen 5, iOS 9.0.1.
haxpor
47

Ini berfungsi pada saya (Xcode 5 - iOS 7 - Perangkat !):

itms-apps://itunes.apple.com/app/idYOUR_APP_ID

Untuk versi yang lebih rendah dari iOS 7 gunakan yang lama:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
Idan
sumber
1
Ini memberikan layar kosong pada perangkat iOS7 saya (menggunakan Xcode 5), ini adalah URL yang masih saya gunakan untuk iOS6. Untuk iOS 7 saya menggunakan yang rinci dalam jawaban saya. Aneh bahwa itu bekerja untuk Anda.
Frank
@ Terus, bagaimana Anda membuka tautan ini? Saya menggunakan iRate dan menggunakan tautan ini, mungkin mencoba menggunakannya dan memeriksa apa sebenarnya perbedaan dari kode Anda.
Idan
2
Saya menggunakan kode berikut [[UIApplication sharedApplication] openURL:[NSURL URLWithString:ITUNES_APP_URL_IOS7]];
Frank
1
self.appStoreID bahkan tidak dapat dikompilasi
ngb
1
Ini rusak lagi di iOS 8 DP5. Mulai melaporkan ini sebagai bug dan berharap mereka memperbaikinya oleh produksi! Kalau tidak kita akan menunggu sampai 8.1 lagi.
Cliff Ribaudo
18

Alternatif Sederhana Satu Baris Kode: ** Juga Lihat Komentar Simulator Di Bawah Ini **

http://itunes.apple.com/app/idAPP_ID

EDIT: Sekarang iOS 7.1 memungkinkan tautan langsung ke tab Ulasan di App Store, ada baiknya menginvestasikan baris kode tambahan untuk langsung ke sana: lihat jawaban lain untuk sisanya.

di sini kita menggunakan http: alih-alih itms-apps: , biarkan iOS mengerjakan sisanya

Saya mendapatkan hasil yang sama dengan pengujian pada perangkat iOS 6.1 & 7 (iPad / iPhone / iPod touch 4)

Secara khusus, pintasan ini , untuk iOS 6 membawa pengguna ke Detailstab dan bukanReviews tab.

The Purple+SoftwareLink mendapat pengguna semua jalan ke Ulasan tab di iOS 6, yang jelas lebih disukai jika Anda tahu bagaimana untuk memeriksa OS.

Catatan penting : Ini akan menyebabkan kesalahan dalam simulator untuk iOS 5.1, 6.1 dan 7.
Tidak dapat Membuka Halaman Safari tidak dapat membuka halaman karena alamat tidak valid (kami tahu itu adalah URL yang valid di luar simulator, di browser apa pun)

Untuk lebih jelasnya : Di iOS 7: http://memberikan pengalaman yang sama seperti itms-apps:tanpa penundaan yang nyata.

* Perlu diingat bahwa perilaku simulator yang disebutkan di atas. Ini sama sekali tidak berbeda dengan mencoba mengakses kamera melalui simulator: simulator bukanlah tempat untuk mengujinya. *

Jason R. Escamilla
sumber
1
Saya tidak yakin bagaimana tepatnya Anda menjawab pertanyaan itu. Tautan yang Anda berikan tidak melakukan apa yang diminta OP, yaitu membuka halaman "ulasan" di App Store. Menghubungkan langsung ke aplikasi itu sendiri sepele.
Asem H.
Karena Anda tidak dapat menautkan langsung ke Ulasan di iOS7, ini sepertinya solusi yang sangat masuk akal.
Nick Cecil
Meskipun saat ini benar, tidak ada jaminan bahwa http akan terus merutekan ke aplikasi App Store. Apple dapat memutuskan di masa depan untuk mengirim tautan aplikasi http ke Safari, siapa tahu? Lebih aman menggunakan protokol langsung.
poetmountain
Kecuali bahwa Apple mengubah protokol langsung sehingga tidak berfungsi di iOS7 kecuali Anda menggunakan format yang berbeda. Jadi tidak benar-benar "lebih aman" sama sekali.
Dunia Nyata
1
Mengenai http:vs itms-apps:saya bisa menautkan langsung ke tab ulasan dengan itms-appsdan bukan dengan httpdi iOS 7.1.1.
zekel
17

Membuka halaman ulasan langsung dari aplikasi dimungkinkan di iOS7. Silakan gunakan url berikut ...

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

Ini pasti akan berhasil .. :)

Murali
sumber
Saya tidak tahu .. Apakah Anda memeriksa di iOS8?
Murali
1
Tidak. Ajukan laporan bug!
Cliff Ribaudo
Saya menggunakan iOS 8.1.1, dan URL ini langsung menuju ke halaman review.
mrzzmr
1
Apa itu "type = Purple + Software" di dalam String?
Darko
16

Tidak jelas mana versi iOS ini didukung oleh, tetapi sebagai bagian dari iOS 10,3 ada parameter permintaan baru yang dapat ditambahkan ke URL: action=write-review. Saya telah menguji ini di iOS 10.2 dan 9.3.5 dan berhasil. Namun, itu tidak berfungsi di iOS 7.1.2, jadi dukungan ditambahkan antara iOS 8.0 dan 9.3.5. Investigasi lebih lanjut diperlukan!

Contoh: https://itunes.apple.com/app/id929726748?action=write-review&mt=8

Ini akan membuka dialog "Tulis Tinjauan" , bukan hanya menampilkan tab ulasan.

Joseph Duffy
sumber
2
Cheers bro :) Ini adalah solusi terbaik sejauh ini. Ke intinya dan sepenuhnya melayani tujuan. Bagi saya ini adalah jawaban yang bisa diterima. Diuji bekerja pada 9.3.5 dan iOS 10.2.1. Langsung buka tulis ulasan. Saya menggunakan ini: itms-apps: //itunes.apple.com/gb/app/id1136613532? Action = write-review & mt = 8, untuk membuat pengguna langsung menulis ulasan.
Ankit Kumar Gupta
... tapi bukankah gb merujuk ke Inggris? Jika demikian, ini akan merujuk semua pengguna ke UK App Store?
Robert Gummesson
@Robert Yeh, tautan yang awalnya saya miliki / gb pada awalnya. Saya pikir itu masih terbuka untuk toko pengguna, tapi saya sudah menghapusnya dari jawaban
Joseph Duffy
Ini berfungsi di iOS10, tetapi tampaknya tidak berfungsi di iOS11 (menggunakan beta 9). Adakah ide jika sesuatu berubah?
ZS
Ini berfungsi di iOS 11.1.1. Terima kasih! Seharusnya jawaban yang diterima, @astrocb
Vexir
9
+ (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;
}
Akan
sumber
1
Appirater telah diperbarui lagi untuk memperbaiki masalah lain. Perubahan utama terdiri dari mengubah tanda centang dari < 7.1menjadi < 8.0sehingga templateReviewURLiOS7tautan digunakan untuk semua versi 7.x iOS daripada menggunakan tautan lama untuk semuanya antara> = 7.1 dan <8.0.
Markus A.
9

Tautan ulasan sekali lagi rusak di iOS9. Dalam melakukan beberapa percobaan, saya menemukan bahwa Apple mengembalikannya ke keadaan sebelum iOS7. Jadi yang harus Anda lakukan:

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

Di mana 2474234779 digit ID aplikasi Anda (perbedaan utamanya adalah Anda harus menambahkan &onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Softwaresetelah ID aplikasi).

Ser Pounce
sumber
5

Semua jawaban di atas sekarang sudah tidak digunakan lagi (iOS 7, tetapi mungkin berfungsi) karena itu, saya memberikan cara baru yang disarankan Apple untuk memberikan tautan ke Aplikasi. Tautan untuk Aplikasi Anda adalah yang dari iTunes (gunakan Salin Tautan), ini direkomendasikan untuk digunakan dalam kode:

Swift 3.0

let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8")
UIApplication.shared.open(path!)

Atau lebih baik - perlakukan opsional dengan benar dan tangani kemungkinan tidak dapat menjangkau tautan:

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

Objektif-C

#define APP_URL_STRING  @"https://itunes.apple.com/us/app/calcfast/id876781417?mt=8"

maka Anda dapat memanggil APP_URL_STRINGkode Anda:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: APP_URL_STRING] options:@{} completionHandler:nil];

Perhatikan, bahwa ini adalah cara yang disarankan sekarang oleh Apple, karena metode pemrosesan tautan redirect sebelumnya telah usang dan tidak didukung.

Tautan untuk semua Aplikasi Anda, jika Anda memiliki lebih dari satu:

#define MYCOMPANY_URL_PATH @"http://appstore.com/mycompany"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: MYCOMPANY_URL_PATH] options:@{} completionHandler:nil];

Tautan Aplikasi di atas direkomendasikan untuk digunakan dalam kode atau tautan yang tidak terlihat langsung oleh pengguna. Jika Anda ingin memberikan tautan yang dapat dilihat dan diingat oleh pengguna, gunakan yang berikut ini: http://appstore.com/calcfast

Sverrisson
sumber
3
ini tidak terhubung ke halaman ulasan
ngb
@ngb Anda hanya dapat menautkan ke Aplikasi atau halaman pengembang. Harap ketika memilih, berikan alasan atau kegagalan yang valid. Saya tidak menunjukkan tautan ke halaman ulasan, tetapi pengguna dapat dengan mudah mengklik tingkat.
Sverrisson
1
Ini adalah metode Apple Recommended yang benar. Yang lainnya adalah retas.
Martin Marconcini
@ Bingo Apa maksudmu? Tautan yang saya berikan berakhir di & mt = 8 ans tautan ke halaman ulasan. Dalam jawaban saya, saya merujuk pada apa yang direkomendasikan Apple, tautan Anda mungkin berfungsi sekarang dan mungkin dalam kasus Anda, tetapi apakah itu berfungsi untuk pengguna di negara lain atau Anda yakin itu tidak akan berubah?
Sverrisson
4

Menggunakan URL ini adalah solusi sempurna bagi saya. Dibutuhkan pengguna langsung ke Write a Review section. Kredit ke @ Joseph Duffy.

Untuk kode contoh coba ini:

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

Di sini showAlert adalah fungsi khusus untuk UIAlertController.

Ankit Kumar Gupta
sumber
3

Saya memiliki ini untuk mendapatkan ID Produk secara otomatis dan menghasilkan Tinjauan App Store dan tautan halaman Produk .

- (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];
}
}

Buka Halaman Tinjauan aplikasi

- (IBAction) rateButton: (id)sender {
   NSString *appStoreReviewLink = appStoreReviewLink;
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewLink]];
}

Buka halaman App Store aplikasi

 - (IBAction) openAppPageButton: (id)sender {
   NSString *appStoreLink = appStoreLink;
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString: appStoreLink]];
 }
Tibidabo
sumber
2

Dikatakan bahwa bug ini akan diperbaiki pada iOS7.1. Baca di sini di forum corona, dan di sini di iPhoneDevSDK .

Joselito
sumber
3
Sayangnya iOS 7.1 sekarang keluar dan masih belum berfungsi.
user1139733
2
Ini berfungsi untuk saya di iOS 7.1 lagi (langsung ke halaman Ulasan) dan orang lain telah menunjukkan hal yang sama di tautan devsdk. Bagi saya, saya hanya perlu mengubah skema dari itms-apps ke http dan berfungsi dengan baik di iOS 7.1. Pada iOS 7.0 masih hanya masuk ke halaman aplikasi utama, tetapi setidaknya tautan http berfungsi, tidak seperti tautan itms-apps lama yang hanya akan menampilkan halaman putih.
stonemonk
Sekarang saya dapat secara positif mengonfirmasi bahwa metode "lama" (Ungu + Perangkat Lunak) berfungsi dengan sempurna di iOS7.1. Anda dapat melihat bukti di aplikasi saya: j.mp/josegg Pada layar utama klik "pengaturan" -> klik "Dapatkan Gratis Js "-> lalu klik" Nilai Kami "-> Anda akan langsung dibawa ke tab ulasan halaman aplikasi saya di app store (jelas hanya bekerja untuk iOS 7.1+ atau iOS 6.1.4-)
Joselito