web-dev-qa-db-ja.com

「このアプリの評価/レビュー」のアプリストアリンク

「このアプリの評価/レビュー」機能をアプリに追加したい。

アプリをレビューするアプリストアの画面に直接リンクする方法はありますか?そのため、顧客はメインのアプリリンクをクリックする必要がありません。ありがとう。

編集:応答がないため、これに関する賞金を開始します。クリスタルクリアであることを確認するために、ストア内のアプリのページにリンクできることを認識し、ユーザーにそこから[このアプリのレビュー]画面をクリックするように依頼します。問題は、「このアプリのレビュー」画面に直接リンクして、クリックする必要がないようにするかどうかです。

179

iOS 7より前のバージョンでは古いものを使用:

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

これは私の側で動作します(Xcode 5-iOS 7-Device!):

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

iOS 8以降の場合:

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

コードスニペット(コピーして貼り付けることができます):

#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
340
elibud

更新:

Swift 4.0、Xcode 9.1

Real Device iOS 11.xでテスト済み(動作保証)

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(_ :)はiOS 10から廃止されました。

44
Strong

上記のすべてが正しいです。アプリに挿入して{YOUR APP ID}を実際のアプリIDに変更するサンプルです。iTunesconnectから取得してレビューページを表示します。上記でコメントしたように、シミュレータでは動作せず、デバイスのみで動作することに注意してください。
-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

編集:iOS 11ソリューション

これが元の答えの解決策です(以下を参照)。 iOS 11を使用する場合、次のリンク形式が機能します。

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

APP_IDを特定のアプリIDに置き換えるだけです。リンクを機能させるための鍵は、国コードです。上記のリンクではusコードを使用していますが、実際にはどのコードが使用されているかは関係ありません。ユーザーは自動的に自分のストアにリダイレクトされます。

iOS 11アップデート:

レビューページに直接アクセスする他の回答で提示された解決策は、iOS 11では機能しないようです

最も可能性が高い問題は、iOS 11 App StoreアプリのアプリページにNOTのレビュータブがなくなったことです。代わりに、レビューは説明とスクリーンショットのすぐ下に配置されます。もちろん、このセクションに直接到達することはまだ可能ですが(たとえば、何らかのアンカーを使用して)、これはサポートされていない/Appleが意図しているようです。

次のリンクのいずれかを使用しても機能しなくなりました。ユーザーを引き続きApp Storeアプリに移動しますただし、空白ページのみ

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

これらのリンクをどのように使用する場合でも、できるだけ早くアプリを更新する必要があります.

ただし、レビューページではなくアプリページを参照するリンクは引き続き機能します。

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

そのため、ユーザーをアプリのストアページに移動することはできますが、レビューセクションに直接移動することはできなくなりました。ユーザーは、フィードバックを残すために、レビューセクションまで手動でスクロールする必要があります。

これは間違いなく「ユーザーエクスペリエンスにとって大きな素晴らしい利点であり、開発者がユーザーに迷惑をかけずに高品質のレビューを残すよう促すのに役立ちます」。よくやったアップル...

35
Andrei Herford

上記のアプローチはすべて正しいですが、今日ではSKStoreProductViewControllerを使用するとユーザーエクスペリエンスが向上します。それを使用するには、次のことを行う必要があります。

  • 実装 SKStoreProductViewControllerDelegate アプリデリゲートのプロトコル
  • 必須productViewControllerDidFinishメソッドを追加します。

    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
      [viewController dismissViewControllerAnimated: YES completion: nil];
    }
    
  • SKStoreProductViewControllerクラスが使用可能かどうかを確認し、クラスを表示するか、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]];
    }
    
26
deko

IOS 11のソリューション

短いApp Store URLは、新しいiOS 11 App Storeの「レビューを書く」インターフェースを正しく開きません。たとえば、これはnot動作します:

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

回避策は、次のような2文字の国コードとアプリ名をURLに含めることです。

 https://iTunes.Apple.com/私たち/アプリ/ツイッター/id333903271?mt = 8&action = write-review 

または

 itms-apps://iTunes.Apple.com/私たち/アプリ/ツイッター/id333903271?mt = 8&action = write-review 

ここからアプリの完全なURLを取得できます。 https://linkmaker.iTunes.Apple.com/

これにより、iOS 11 App Storeで「レビューを書く」インターフェースが正常に開きます。

編集:@Theoが以下で言及するように、国コードをローカライズする必要はなく、アプリ名が変更されます。

Appleが短いURLに対してこれをすぐに修正することを願っています。 rdar:// 34498138 を参照してください

13
neave

Swift 2バージョン

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

以前のすべてのリンクは「レビュー」タブに直接リンクしていません。

このリンクは、[レビュー]タブに直接移動します。

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

または

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

11
Satinos

IOS7では、レートとレビューのためにurアプリをApp Storeに切り替えるURLが変更されました。

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

APP_IDをアプリケーションIDに置き換える必要がある場合。

IOS 6以前では、以前の回答のURLは正常に機能しています。

ソース: Appirater

コーディングをお楽しみください。

9
iProgrammer

このURLを使用することは、私にとって完璧なソリューションでした。ユーザーをWrite a Review sectionに直接連れて行きます。 @Joseph Duffyのクレジット。 MUST TRY

URL = itms-apps://iTunes.Apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8YOUR_APP_ID_HEREAppIdに置き換えます

サンプルコードについては、これを試してください。

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はUIAlertControllerのカスタム関数です。

8

IOS 10.3以降では、action=write-reviewクエリアイテムをhttps://iTunes.Apple.com/...およびhttps://appsto.re/... URLに添付できます。 iOS 10.3以降ではWrite a reviewが自動的に開きますが、下位のiOSリリースではアプリのApp Storeページにフォールバックします。

iOS 11アップデート:Appleのリンクメーカーを使用: linkmaker.iTunes.Apple.com を追加し、&action=write-reviewを追加しているようです最も安全な方法である。

7
rshev

これを行う新しい方法がiOS 11 +(新しいアプリストア)にあります。 [レビューを書く]ダイアログを直接開くことができます。

iOS 11の例:

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

または

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

ノート:

  • 国コードが必要です/us/)。どの国コードでも構いません。
  • アプリID(1137397744)をアプリIDに変更します(iTunes URLから取得します)。
  • 古いiOSバージョン(11より前)をサポートする場合、OSバージョンが11以上である場合にのみこの方法でリンクする条件付きロジックが必要になります。
6
kspearrin

IOS 8とiOS 9の両方でアプリのレビューページに実際に移動するSwift 2バージョン:

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は「削除時のレート」機能を廃止しました。

当分の間、アプリケーションを評価する唯一の方法はiTunes経由です。

編集:iTunes Link Makerを使用して、アプリケーションへのリンクを生成できます。 このサイトにはチュートリアルがあります。

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

SKStoreProductViewControllerを介してAppStoreの任意のアプリにリンクします

SKStoreProductViewControllerを介して、アプリストアでアプリに簡単にリンクできます。しかし、私は少し苦労したので、プロセス全体と必要なコードをここに表示することにしました。また、この手法により、常に正しいストアが使用されるようになります(ローカライズされたアプリにとって重要)。

アプリ内のアプリストアのアプリの製品画面をアプリViewControllersで表示するには、次の手順に従います。

  1. 追加のStoreFit.framework プロジェクト設定(ターゲット、ビルドフェーズ->ライブラリとバイナリをリンク
  2. StoreKitのインポート ViewControllerクラスに
  3. ViewControllerがこのプロトコルに準拠するようにしますSKStoreProductViewControllerDelegate
  4. 目的の製品画面でStoreViewを提示するのメソッドを作成します
  5. Dismiss StoreView

しかし最も重要:これは-何らかの理由で-シミュレーターでは動作しません-インターネットに接続できる実際のデバイスにビルドしてインストールする必要があります。

  1. プロジェクトへのStorKit.frameworkの追加: Find this in your project settings

Swift 4:これは、前述の手順に従ったコードです。

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

私はiOS 10でも同じ問題を抱えていて、iTunesレートセクションを呼び出して呼び出すことができます:

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

基本的に、最後のURL変数を「mt = 7」に変更しました

乾杯

3
Juanan Jimenez

> = iOS8の場合:(@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

これがアプリで使用しているコードです。

-(void)rateApp {

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

Apple Developer Documentation からの引用

さらに、App Store製品ページにディープリンクする永続的なリンクをアプリの設定または構成画面に引き続き含めることができます。ユーザーがApp Storeでレビューを書くことができるページを自動的に開くには、クエリパラメーターaction = write-reviewを製品URLに追加します。

したがって、URLは次のようになります。

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

2
DanLand

受け入れられた回答は、「レビュー」タブの読み込みに失敗しました。 「詳細」タブなしで「レビュー」タブを読み込む方法を以下に見つけました。

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

{APP_ID}をアプリアプリストアアプリIDに置き換えます。

2
TharakaNirmana

Swift

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

これはiOS 9〜11で正常に機能します。

以前のバージョンではテストしていません。

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

アプリがベータ版として承認されており、まだ公開されていない場合は、アプリレビューリンクを利用できますが、レビューを残すことはできません。

  1. iTunes Connectにログインします
  2. My Appsをクリックします
  3. App Iconをクリックしてください
  4. App Storeページで確認してください
  5. App Informationセクションに移動します(自動的にそこに移動します)
  6. そのページの下部には、View on App Storeという青いリンクがあります。それをクリックすると、空白のページが開きます。ページ上部のURLバーの内容をコピーします。これがアプリレビューリンクです。アプリが公開されると公開されます。

enter image description here

0
Lance Samaria

IOS 10.3以降:

import StoreKit

func someFunction() {
 SKStoreReviewController.requestReview()
}

しかし、10.3でリリースされたばかりなので、上記のように古いバージョンのフォールバック方法が必要になります

0
Alex