很抱歉,我更像是一个iOS开发者,而不是安卓。尽管我阅读了各种教程,但我真的很难在我的应用程序中创建一个简单的谷歌评论提示符。
我在用ReviewManagerFactory。我加入了build.gradle依赖项
implementation 'com.google.android.play:core:1.8.0'在我的代码中,对于一个活动,我有一个简单的函数,名为'reviewPrompt‘。创建ReviewManager实例并请求开始检查流程。
private void reviewPrompt() {
ReviewManager manager = ReviewManagerFactory.create(this);
manager.requestReviewFlow();
}这就是我需要做的,以实现审查提示?许多其他教程(包括Google )一直在讨论如何首先创建ReviewManagerFactory实例。
ReviewManager manager = ReviewManagerFactory.create(context)然后补充如下:
ReviewManager manager = ReviewManagerFactory.create(this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
// We can get the ReviewInfo object
ReviewInfo reviewInfo = task.getResult();
} else {
// There was some problem, log or handle the error code.
@ReviewErrorCode int reviewErrorCode = ((TaskException) task.getException()).getErrorCode();
}
});为什么他们建议创建两个ReviewManger实例?先用(上下文),再用(这个)?如果两者都需要的话,它们是否都具有相同的功能?
ReviewManager manager = ReviewManagerFactory.create(context)去别的地方??
他们似乎还附加侦听器等(以各种方式),但据我所见,这不一定是必要的,除非我希望跟踪审查流程是否完成或失败等。
如果我在这里遗漏了什么,请纠正我。
最后,只有当用户在应用程序生命周期中打开某个特定活动的次数'x‘时,我才会调用此函数。我使用我的iOS,我使用了用户默认值和reviewWorthyActionCount。Android中有类似的东西吗?
提前感谢
发布于 2021-09-26 01:43:11
文档上的示例分为三个部分,如果您是android新手,可能会有点难以理解。这里有一个完整的示例,它集成了文档中的三个部分。
ReviewManager manager = ReviewManagerFactory.create(this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
ReviewInfo reviewInfo = task.getResult();
val flow = manager.launchReviewFlow(this@/*Your activity class name here(ie:MainActivity)*/, reviewInfo)
flow.addOnCompleteListener { _ ->
//do something after the review flow finishes, like logging that the review flow was completed successfully
}
} else {
// There was some problem, log or handle the error code.
@ReviewErrorCode int reviewErrorCode = ((TaskException) task.getException()).getErrorCode();
}
});解释:
两者都有
ReviewManager manager = ReviewManagerFactory.create(context) 和
ReviewManager manager = ReviewManagerFactory.create(this)同样,关于文档的第二部分包括第一个部分,假设"this“是一个类型为"context”的对象。
然后这句话:
val flow = manager.launchReviewFlow(activity, reviewInfo)这也可能会让人感到困惑,这意味着launchReviewFlow的第一个参数应该是活动类型,如果您复制和粘贴代码,它将无法工作。您必须使用以下内容:
val flow = manager.launchReviewFlow(this, reviewInfo)
//or
val flow = manager.launchReviewFlow(this@MainActivity, reviewInfo)当"MainActivity“是您活动的类名时。
然后,要存储一个计数器,您可以使用SharedPreferences或新的DataStore库,dominicoder说。
发布于 2021-09-21 08:48:43
根据ReviewManagerFactory的说法,你应该传递上下文,就像安卓活动也是上下文一样。当您提到“此”时,它意味着您传递当前对象(活动)。您不需要使用(这个和上下文)创建两个不同的对象(两者都是相同的)
对于第二种情况,首先在android SharedPereference中保存一个名为fooActivityVisited的值(它是存储值的本地存储空间),然后在您的活动中递增它,并在到达“计数”时进行检查,您将显示审查结果。
发布于 2021-09-19 07:46:51
为什么他们建议创建两个ReviewManger实例?先用(上下文),再用(这个)?如果两者都需要的话,它们是否都具有相同的功能? ReviewManager管理器=ReviewManagerFactory.create(上下文) 去别的地方??
你的职位缺乏..。背景(呵呵) ..。但我不认为他们建议创建两个实例,您可能会看到两个不同的例子。我不知道,因为你发布了随机片段,而不是一个完整的例子。
在任何情况下,您都需要使用Context创建管理器的实例。在第一个示例中,代码似乎是从View或Fragment调用的,它们都不是Context的,但它们确实具有context属性。
在第二个示例中,代码似乎是从Activity (即Context )调用的,因此可以用this调用它。
至于它的发展方向-嗯,它会去任何你需要这个管理器对象的地方。
用完整的代码示例或链接来回答您的问题会更容易,无论您遵循的是什么教程。
他们似乎还附加侦听器等(以各种方式),但据我所见,这不一定是必要的,除非我希望跟踪审查流程是否完成或失败等。 如果我在这里遗漏了什么,请纠正我。
这里有问题吗?哪些听众是“他们似乎有依附的”?这个假设是基于什么的?你能张贴一些代码或链接到一个你正在看的例子吗?
最后,只有当用户在应用程序生命周期中打开某个特定活动的次数'x‘时,我才会调用此函数。我使用我的iOS,我使用了用户默认值和reviewWorthyActionCount。Android中有类似的东西吗?
您正在询问Android开发人员是否有类似于某些iOS结构的东西,而没有解释这些构造是什么。如果你解释一下什么是“用户默认”和"reviewWorthyActionCount“,我可以告诉你安卓上是否有类似的东西。
除此之外,如果我想跟踪一些简单的持久状态,比如“查看活动X次”,我可能会使用SharedPreferences或新的DataStore库。
https://stackoverflow.com/questions/69150525
复制相似问题