2017-04-03 93 views
20

我已经看到了一些答案,但不满意他们,并有一些想法,但不知道如何正确使用它,以便它会以正确的方式执行,但我认为它应该用于应用程序代表didFinishLaunching,但我想确保在Live应用程序中实施它之前没有任何喧嚣。 SKStore​Review​Controller只适用于ios 10.3我读过的东西,任何人都可以用快速和客观的一点代码来解释c。SKStore Review Controller,如何正确使用它?

UPDATE:

其实我很困惑调用方法request​Review(),我在哪里需要调用这个方法?在rootViewControllerviewDidLoadappDelegatedidFinishlaunching

谢谢。

+0

不明白为什么要投票.. –

+1

我有同样的问题。 –

回答

54

SKStoreReviewController在iOS 10.3及以后的版本。

根据苹果的文档:

您可以要求用户评分或评论你的应用程序,而他们正在使用它, 没有将它们发送到App Store.You在 用户体验决定点在这种情况下调用API是有意义的,系统 负责处理其余部分。

要在应用程序中显示费率/评论,您必须添加StoreKit框架。

请找到示例代码用于语言:

目标C:

#import <StoreKit/StoreKit.h> 

- (void)DisplayReviewController { 
    if([SKStoreReviewController class]){ 
     [SKStoreReviewController requestReview] ; 
    } 
} 

因为Xcode中9,你可以这样做:

#import <StoreKit/StoreKit.h> 

- (void)DisplayReviewController { 
    if (@available(iOS 10.3, *)) { 
     [SKStoreReviewController requestReview]; 
    } 
} 

斯威夫特:

import StoreKit 

func DisplayReviewController { 
    if #available(iOS 10.3,*){ 
     SKStoreReviewController.requestReview() 
    } 
} 

更新: Ask for a rating only after the user has demonstrated engagement with your app

+0

好吧,我需要把这个代码?在appDelegate? –

+1

这取决于您要在何处显示它。 –

+0

您已经添加了UIButton Action中的代码,这意味着用户必须点击该按钮才能获得评论对话框!我认为它应该由ios自动处理,因为我阅读过,我对将代码放在appDelegates didFinishLaunching或rootViewcontroller的viewDidLoad中的位置感到困惑。 –

1

我想你可能会实现一个方法来计算它们何时运行应用程序并将其存储在UserDefaults中,然后调用requestReview()如果计数是5或10或类似的东西(它取决于你),通过这样你有更多的机会获得良好的评论。

6

对于目标C,

1-)添加StoreKit框架从链接二进制随着库 enter image description here

2-)添加框架

#import <StoreKit/StoreKit.h> 

3-)添加以下代码,其中您想要调用应用程序回顾弹出窗口。在这种情况下,我加入了viewDidLoad。

- (void)viewDidLoad { 
     [super viewDidLoad]; 
     [SKStoreReviewController requestReview]; 
    } 

4-)你应该知道下面从苹果,当你在调试模式下测试解释

当调用此方法,而你的应用程序仍处于发展模式,评分/评论请求视图始终显示,以便您可以测试用户界面和体验。但是,当您使用TestFlight分发的应用程序中调用此方法时,此方法不起作用。

+0

你是什么意思的“没有效果”在生产? – Balanced

+0

您的评分​​和评论将不会显示在App Store上。 –

+0

这就是为什么“发送”按钮是灰色的?此外,这要求用户评价应用程序(从1到5星),但我不知道如何让用户也写评论? – Balanced