ITunes 리뷰 URL 및 iOS 7(사용자에게 앱 평가 요청) AppStore에 빈 페이지 표시
사용자에게 우리의 앱을 평가하고 평가 페이지에서 앱 스토어를 직접 열도록 요청하는 기술이 iOS 7에서 여전히 작동하는지 아는 사람이 있습니까?
나는 내 앱에서 이 URL을 열곤 했습니다.
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=353372460&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
하지만 더 이상 작동하지 않는 것처럼 보입니다(앱스토어는 빈 페이지를 표시합니다).저도 이 URL을 시도했지만 실패했습니다.
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?pageNumber=0&sortOrdering=1&type=Purple+Software&mt=8&id=353372460
iOS7부터는 URL이 변경되어 리뷰 페이지로 이동할 수 없고 앱으로만 이동할 수 있습니다.
itms-apps://itunes.apple.com/app/idAPP_ID
APP_ID를 사용자의 애플리케이션 ID로 대체해야 합니다.질문의 앱 ID를 기준으로 하면 다음과 같습니다.
itms-apps://itunes.apple.com/app/id353372460
숫자 앞의 ID는 353372460이 아니라 ID 353372460입니다.
iOS7 이전 버전의 경우 '이전' URL을 사용해야 하며, 이 URL만 사용하면 검토 페이지로 바로 이동할 수 있습니다.또한 이러한 통화는 장치에서만 작동합니다.시뮬레이터에 앱스토어 앱이 설치되어 있지 않기 때문에 시뮬레이터에서 앱을 실행해도 아무런 효과가 없습니다.
예를 들어 구현을 위한 Appirater를 살펴봅니다.https://github.com/arashpayan/appirater
전화 격차에 대한 자세한 내용은 도움이 되지 않습니다(사용하지 않음).그러나 기본적으로 사용자가 실행 중인 iOS 버전을 확인한 다음 이전 URL 또는 새 iOS7 URL을 사용합니다.
다음 URL은 iOS 7.1에서 완벽하게 작동합니다.
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=xxxxxxxx&pageNumber=0&sortOrdering=2&type=Purple+Software&mt=8
xxxxxxxx앱 아이디입니다.
업데이트. iOS 9.3.4 및 iOS 10 GM에서 작동합니다(지트 기준).
이것은 내 쪽에서 작동합니다(Xcode 5 - iOS 7 - Device!):
itms-apps://itunes.apple.com/app/idYOUR_APP_ID
iOS 7 이전 버전의 경우 이전 버전을 사용합니다.
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
코드 한 줄 간단한 대안: ** 아래 시뮬레이터 설명 참조 **
http://itunes.apple.com/app/idAPP_ID
편집: 이제 iOS 7.1에서 앱스토어의 리뷰 탭으로 직접 연결할 수 있으므로, 앱스토어에 직접 연결하기 위해 추가 코드 라인을 투자할 가치가 있습니다. 나머지는 다른 답변을 참조하십시오.
를 사용합니다. http: 에 대신에 itms-apps:iOS가 나머지 작업을 수행하도록 합니다.
7 4) iOS 6.1 및 7 기 (iPad/iPhone/iPod touch 4)에서 합니다.
특히, iOS 6용 이 바로 가기는 사용자를 다음과 같이 안내합니다.Details이 탭Reviews스캐너
그Purple+Software 6의 Reviews 시킵니다. 이 됩니다. link는 iOS 6의 Reviews 탭입니다.
중요한 참고:이로 인해 iOS 5.1, 6.1 및 7용 시뮬레이터에 오류가 발생합니다.
주소가 잘못되었기 때문에 페이지를 열 수 없습니다(모든 브라우저에서 시뮬레이터 외부의 유효한 URL임을 알고 있음).
분명히 해야 할 것은iOS 7의 경우:http://는 와동한환제공니다합경과 합니다.itms-apps:눈에 띄는 지체 없이
위에서 언급한 시뮬레이터 동작에 유의하십시오.이것은 시뮬레이터를 통해 카메라에 접근하려는 것과 완전히 다르지 않습니다. 시뮬레이터는 그것을 테스트할 장소가 아닙니다.*
어떤 버전의 iOS에서 지원되는지는 확실하지 않지만 iOS 10.3의 일부로 URL에 추가할 수 있는 새로운 쿼리 매개 변수가 있습니다.action=write-review와 9해 본 합니다. iOS 10.2는 9.3.5를 지원합니다.그러나 iOS 7.1.2에서는 작동하지 않으므로 iOS 8.0과 9.3.5 사이에 지원이 추가되었습니다.추가 조사가 필요합니다!
예: https://itunes.apple.com/app/id929726748?action=write-review&mt=8
이렇게 하면 검토 탭을 표시하는 대신 "검토 작성" 대화상자가 열립니다.
iOS7에서는 앱에서 직접 리뷰 페이지를 여는 것이 가능합니다.다음 URL을 사용하십시오...
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID
이것은 분명히 효과가 있을 것입니다.:)
+ (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;
}
iOS9에서 리뷰 링크가 다시 한번 깨졌습니다.몇 가지 실험을 하면서, 저는 애플이 iOS7 이전의 모습으로 되돌렸다는 것을 알게 되었습니다.따라서 다음을 수행해야 합니다.
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=247423477&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software
에▁where디247423477입니다. (은 9자리 앱 아이디를 추가해야 입니다.)&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software앱 ID) 뒤에 표시됩니다.
위의 모든 답변은 이제 더 이상 사용되지 않습니다(iOS 7, 하지만 작동할 수도 있음). 따라서 Apple이 앱에 대한 링크를 제공할 것을 권장하는 새로운 방법을 제공합니다.앱 링크는 iTunes(Copy Link 사용)의 링크이며 코드에서 사용하는 것이 좋습니다.
스위프트 3.0
let path = URL(string: "https://itunes.apple.com/us/app/calcfast/id876781417?mt=8")
UIApplication.shared.open(path!)
또는 선택사항을 올바르게 처리하고 링크에 연결할 수 없는 가능성을 처리합니다.
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)")
}
}
}
목표-C
#define APP_URL_STRING @"https://itunes.apple.com/us/app/calcfast/id876781417?mt=8"
그럼 전화하셔도 됩니다.APP_URL_STRING코드:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: APP_URL_STRING] options:@{} completionHandler:nil];
이전의 리디렉션 링크 처리 방법은 더 이상 사용되지 않으며 지원되지 않기 때문에 현재 Apple에서 권장하는 방법입니다.
두 개 이상의 앱이 있는 경우 모든 앱에 대한 링크:
#define MYCOMPANY_URL_PATH @"http://appstore.com/mycompany"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: MYCOMPANY_URL_PATH] options:@{} completionHandler:nil];
위 앱 링크는 사용자가 직접 볼 수 없는 코드나 링크에서 사용하는 것이 좋습니다.할 수 하십시오.http://appstore.com/calcfast
이 URL을 사용하는 것이 저에게 완벽한 해결책이었습니다.사용자가 직접 사용할 수 있습니다.Write a Review section@Joseph Duffy의 크레딧.
샘플 코드의 경우 다음을 시도합니다.
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.
저는 제품 ID를 자동으로 가져오고 앱 스토어 리뷰 및 제품 페이지 링크를 생성하기 위해 이것을 가지고 있습니다.
- (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];
}
}
앱의 검토 페이지 열기
- (IBAction) rateButton: (id)sender {
NSString *appStoreReviewLink = appStoreReviewLink;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appStoreReviewLink]];
}
앱의 앱 스토어 페이지 열기
- (IBAction) openAppPageButton: (id)sender {
NSString *appStoreLink = appStoreLink;
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: appStoreLink]];
}
iOS 7.1에서 이 버그가 수정될 것이라고 합니다. 여기 코로나 포럼, 여기 아이폰DevSDK에서 읽어보세요.
언급URL : https://stackoverflow.com/questions/18905686/itunes-review-url-and-ios-7-ask-user-to-rate-our-app-appstore-show-a-blank-pag
'programing' 카테고리의 다른 글
| PostgreSQL에서 열 기본값을 변경하려면 어떻게 해야 합니까? (0) | 2023.05.29 |
|---|---|
| Bash에서 문자열이 어떤 값으로 시작하는지 확인하려면 어떻게 해야 합니까? (0) | 2023.05.29 |
| 여러 속성을 가진 CSS 전환 속기? (0) | 2023.05.29 |
| 문자열에서 숫자 0-9만 반환 (0) | 2023.05.29 |
| Postgre의 현재 연결 수를 가져오는 오른쪽 쿼리SQL DB (0) | 2023.05.29 |