「このアプリの評価/レビュー」機能をアプリに追加したい。
アプリをレビューするアプリストアの画面に直接リンクする方法はありますか?そのため、顧客はメインのアプリリンクをクリックする必要がありません。ありがとう。
編集:応答がないため、これに関する賞金を開始します。クリスタルクリアであることを確認するために、ストア内のアプリのページにリンクできることを認識し、ユーザーにそこから[このアプリのレビュー]画面をクリックするように依頼します。問題は、「このアプリのレビュー」画面に直接リンクして、クリックする必要がないようにするかどうかです。
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
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
更新:
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から廃止されました。
上記のすべてが正しいです。アプリに挿入して{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]];
編集: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)
そのため、ユーザーをアプリのストアページに移動することはできますが、レビューセクションに直接移動することはできなくなりました。ユーザーは、フィードバックを残すために、レビューセクションまで手動でスクロールする必要があります。
これは間違いなく「ユーザーエクスペリエンスにとって大きな素晴らしい利点であり、開発者がユーザーに迷惑をかけずに高品質のレビューを残すよう促すのに役立ちます」。よくやったアップル...
上記のアプローチはすべて正しいですが、今日ではSKStoreProductViewControllerを使用するとユーザーエクスペリエンスが向上します。それを使用するには、次のことを行う必要があります。
必須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]];
}
短い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 を参照してください
func jumpToAppStore(appId: String) {
let url = "itms-apps://iTunes.Apple.com/app/id\(appId)"
UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}
以前のすべてのリンクは「レビュー」タブに直接リンクしていません。
このリンクは、[レビュー]タブに直接移動します。
https://iTunes.Apple.com/app/viewContentsUserReviews?id=AppID
または
itms-apps://iTunes.Apple.com/app/viewContentsUserReviews?id = AppID
IOS7では、レートとレビューのためにurアプリをApp Storeに切り替えるURLが変更されました。
itms-apps://iTunes.Apple.com/app/idAPP_ID
APP_IDをアプリケーションIDに置き換える必要がある場合。
IOS 6以前では、以前の回答のURLは正常に機能しています。
ソース: Appirater
コーディングをお楽しみください。
この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=8
YOUR_APP_ID_HEREをAppIdに置き換えます
サンプルコードについては、これを試してください。
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
のカスタム関数です。
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
を追加しているようです最も安全な方法である。
これを行う新しい方法が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/
)。どの国コードでも構いません。1137397744
)をアプリIDに変更します(iTunes URLから取得します)。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)!)
iOS 4は「削除時のレート」機能を廃止しました。
当分の間、アプリケーションを評価する唯一の方法はiTunes経由です。
編集:iTunes Link Makerを使用して、アプリケーションへのリンクを生成できます。 このサイトにはチュートリアルがあります。
NSString *url = [NSString stringWithFormat:@"https://iTunes.Apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
SKStoreProductViewControllerを介して、アプリストアでアプリに簡単にリンクできます。しかし、私は少し苦労したので、プロセス全体と必要なコードをここに表示することにしました。また、この手法により、常に正しいストアが使用されるようになります(ローカライズされたアプリにとって重要)。
アプリ内のアプリストアのアプリの製品画面をアプリViewControllersで表示するには、次の手順に従います。
しかし最も重要:これは-何らかの理由で-シミュレーターでは動作しません-インターネットに接続できる実際のデバイスにビルドしてインストールする必要があります。
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)
}
}
私はiOS 10でも同じ問題を抱えていて、iTunesレートセクションを呼び出して呼び出すことができます:
基本的に、最後のURL変数を「mt = 7」に変更しました
乾杯
> = 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];
}
}
これがアプリで使用しているコードです。
-(void)rateApp {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://iTunes.Apple.com/app/" stringByAppendingString: @"id547101139"]]];
}
Apple Developer Documentation からの引用
さらに、App Store製品ページにディープリンクする永続的なリンクをアプリの設定または構成画面に引き続き含めることができます。ユーザーがApp Storeでレビューを書くことができるページを自動的に開くには、クエリパラメーターaction = write-reviewを製品URLに追加します。
したがって、URLは次のようになります。
itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID?action = write-review
受け入れられた回答は、「レビュー」タブの読み込みに失敗しました。 「詳細」タブなしで「レビュー」タブを読み込む方法を以下に見つけました。
[[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に置き換えます。
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)
}
}
let rateUrl = "itms-apps://iTunes.Apple.com/app/idYOUR_APP_ID?action=write-review"
if(UIApplication.shared.canOpenURL(rateUrl)) {
UIApplication.shared.openURL(rateUrl)
}
これはiOS 9〜11で正常に機能します。
以前のバージョンではテストしていません。
[NSURL URLWithString:@"https://iTunes.Apple.com/app/idXXXXXXXXXX?action=write-review"];
アプリがベータ版として承認されており、まだ公開されていない場合は、アプリレビューリンクを利用できますが、レビューを残すことはできません。
iTunes Connect
にログインしますMy Apps
をクリックしますApp Icon
をクリックしてくださいApp Store
ページで確認してくださいApp Information
セクションに移動します(自動的にそこに移動します)View on App Store
という青いリンクがあります。それをクリックすると、空白のページが開きます。ページ上部のURLバーの内容をコピーします。これがアプリレビューリンクです。アプリが公開されると公開されます。IOS 10.3以降:
import StoreKit
func someFunction() {
SKStoreReviewController.requestReview()
}
しかし、10.3でリリースされたばかりなので、上記のように古いバージョンのフォールバック方法が必要になります