iOSApp应⽤内评价
前⾔
好听的日文歌曲从iOS 10.3开始,⽤户可以在APP内直接进⾏评分或评论,不需要再跳转到AppStore了。之前的流程是:⽤户点击评论按钮打开评论页⾯(或某个时刻⾃动弹出)->点击评论->跳转到AppStore->进⾏评论。苹果这⼀设计简化了评论流程,⽤户体验更好了⼀些。
实现
对于我们开发者来说,我们怎么实现这⼀功能呢?
尉迟琳嘉微博苹果在最新的iOS 10.3的SDK中的StoreKit框架中新增了⼀个类来专门做这件事情,它只有⼀个类⽅法requestReview。下⾯直接上代码。
引⼊框架 #import <StoreKit/StoreKit.h>
调⽤requestReview⽅法
- (void)showReviewAlert {
三年级秋天的作文
[SKStoreReviewController requestReview];
}
运⾏之后的页⾯
⾄此就实现在App内直接评论了。
开发阶段,这个页⾯上的“提交”按钮是灰⾊的,不能点击的。在app上线之后,这个按钮就可以点击了,如下图:
选择星级之后,点击“提交”,评价就提交成功了,并弹出下⾯窗⼝。你可以选择写评论或点OK关闭窗⼝。如图:
如果是通过点击按钮弹出的评价页⾯,在评价成功之后,再次点击这个按钮就没有反应了。
还可以在你的app链接地址后⾯加上“action=write-review”来直接打开评论页⾯,代码如下:
毛俊杰三围NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple/app/id%@?action=write-review", appID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
运⾏之后的效果如下:
提⽰:iOS 10.3之后苹果不建议⽤户通过点击按钮或其它⽅式来打开评论页⾯,我们需要做的就是确定在什么时候和什么位置加⼊弹出评论页的代码,剩下的事情就是iOS系统要做的了,评论页是否弹出是由苹果决定的,每年不超过3次,跟App的版本⽆关。
这是苹果对类⽅法requestReview的注释:
/** Request StoreKit to ask the user for an app review. This may or may not show any UI.
*
*  Given this may not succussfully present an alert to the user, it is not appropriate for use
*  from a button or any other user action. For presenting a write review form, a deep link is
公共场所卫生
*  available to the App Store by appending the query params "action=write-review" to a product URL.
*/
兼容
因为SKStoreReviewController这个类是10.3新增加的,这个⽅法在10.3之前的系统上运⾏时没有任何
反应(亲测),所以我们的App还需要兼容之前的系统,下⾯是10.3之前跳转到AppStore评论页⾯的代码:
NSString *str = [NSStringstringWithFormat:@"itms-apps://itunes.apple/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Softwar e&id=%@", appID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
也可以使⽤以下代码:
NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple/app/id%@?action=write-review", appID];孙泽源年龄
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
参考博客
下⾯是⼏个国外开发者针对10.3在App内直接评论这⼀技术发表的博客,⼤家可以参考⼀下。
希望对⼤家有所帮助。