1.0.0
该门户网站正在开发中。文档的完整版本请看这里.
RuStore In-app Review SDK推出用户在不离开应用程序的情况下,在RuStore中给您的应用程序评分和评论。
用户可以在应用程序的整个使用流程中的任何时候启动评分和评论的用户流程。用户可以按照从 1 到 5 的等级对您的应用进行评分,并留下评论(评论是可选的)。
SDK 正确运作的条件
为了评分和评论应用程序 SDK 的正常运作,需要满足以下条件:
- Android操作系统版本7.0或更高。
- 用户设备上必须安装了RuStore。
- 用户设备上的RuStoreApp版本必须是最新的。
- 用户必须在 RuStore 中获得授权。
- 应用程序必须在 RuStore 上发布。
何时请求评分和评论
遵循以下建议来决定何时向用户请求应用程序评分和评论:
- 在用户充分使用您的应用程序之后启动该流程。
- 不要过于频繁地启动该流程,否则这会降低用户对您应用程序的体验并限制评分 SDK 的使用。
- 不要 使用诸如"评价应用程序"之类的行动号召按钮,因为用户可能已达到启动流程的次数上限。
- 您的应用程序在启动或进行流程时不应向用户提出任何问题,包括他们的意见(例如:"您喜欢这个应用程序吗?")或预测性问题(例如:"您会给这个应用程序评5星吗?")。
设计建议
遵循以下建议以决定如何集成流程:
- 保持流程原样显示,不对当前设计进行任何干预或更改,包括大小、不透明度、形状和其他属性。
- 不要在流程的顶部或边缘添加任何内容。
- 流程应在所有层上方打开。启动流程后不要关闭它。流程将在用户明确操作后自行结束。
在项目中集成
- 从RuStore的官方GitFlic仓库复制 Plugins 文件夹的内容到您项目中的'Plugins'文件夹。
- 重启Unreal Engine。
- 在插件列表中(Edit → Plugins → Project → Mobile),选择RuStoreReview和RuStoreCore插件。
- 在YourProject.Build.cs文件的PublicDependencyModuleNames列表中,集成RuStoreCore和RuStoreReview模块。
- 在项目设置中(Edit → Project Settings → Android),将Minimum SDK Version参数设置为不低于24,Target SDK Version参数设置为不低于31。
RuStoreReviewManager初始化
为了使用评分功能,需要初始化RuStoreReviewManager:
初始化
URuStoreReviewManager::Instance()-\>Init();
blueprints中的使用示例:
重要提示:
- 调用Init()将对象绑定到场景的根部,如果之后不再计划使用该对象,为了释放内存,需要执行Dispose()方法。
用 Dispose 方法会将对象从根部解绑,并安全地完成所有已发送的请求。
初始化
URuStoreReviewManager::Instance()-\>Dispose();
如果您需要检查库的初始化情况,请使用 getIsInitialized()
方法。如果库已初始化,其值为 true
;如果尚未调用 Init
,则为 false
。
准备启动应用程序评价
提前调用RequestReviewFlow()
,在调用LaunchReviewFlow()
之前,以便准备显示屏幕所需的信息。
RequestReviewFlow
long requestId = URuStoreReviewManager::Instance()-\>RequestReviewFlow( \`\`\[\]( long requestId) { \`\`// Process response \`\`}, \`\`\[\]( long requestId, TSharedPtr\<FURuStoreError, ESPMode::ThreadSafe\> error) { \`\`// Process error \`\`});
blueprints中的使用示例:
如果收到回调Success
,则可以在大约五分钟后启动应用程序评价和评论的流程LaunchReviewFlow()
。
Failure
回调返回 FURuStoreError
结构体,包含错误信息,在Error
参数中。所有可能的FURuStoreException
错误都在"可能的错误"部分有所描述。
启动应用程序评价
调用LaunchReviewFlow()
方法,启动向用户请求评价和评论的流程(图1)。
每个请求在应用程序单次运行期间获得一个独特的requestId
。每个事件都会返回触发该事件的请求的 requestId
。
LaunchReviewFlow
long requestId = URuStoreReviewManager::Instance()-\>LaunchReviewFlow( \`\`\[\]( long requestId) { \`\`// Process response \`\`}, \`\`\[\]( long requestId, TSharedPtr\<FURuStoreError, ESPMode::ThreadSafe\> error) { \`\`// Process error \`\`});
blueprints中的使用示例:
要继续应用程序的流程,请等待用户在onSuccess
或onFailure
中完成流程的通知。
评价流程完成后,无论结果是onSuccess
还是onFailure
,我们都不建议显示任何与评价和评论相关的额外流程。
频繁调用ё不会导致用户显示评分流程,因为显示配额由RuStore调控。
可能的错误
出现的错误会传递给SDK方法的onFailure
处理程序。
错误结构:
错误结构体
USTRUCT(BlueprintType)struct RUSTORECORE_API FURuStoreError{ \`\`GENERATED_USTRUCT_BODY() \`\`FURuStoreError() \`\`{ \`\`name = \"\" ; \`\`description = \"\" ; \`\`} \`\`UPROPERTY(BlueprintReadOnly) \`\`FString name; \`\`UPROPERTY(BlueprintReadOnly) \`\`FString description;};
name
- 错误名称。description
- 错误描述。onFailure
中您可能接收的可能错误:RuStoreNotInstalledException
- 用户设备上未安装RuStore。RuStoreOutdatedException
- 用户设备上的RuStore不支持启动评分和评论的流程。RuStoreUserUnauthorizedException
- 用户未在RuStore中授权。RuStoreRequestLimitReached
- 自上次显示流程以来时间太短。RuStoreReviewExists
- 该用户已对您的应用程序进行了评价。RuStoreInvalidReviewInfo
- ReviewInfo出现问题。RuStoreException(message: String)
- RuStore的基本错误,其他错误均继承自此。