本文概述
作为开发人员, 我们喜欢了解用户对我们作品的看法。通常, 用户不会因为时间, 懒惰等原因而公开分享自己的观点。但这对我们很重要, 因此, 如果他们不符合Play商店中你的应用程序的资格, 则至少应在内部对你的应用程序进行资格审查, 可以以某种方式知道用户对你的应用的看法。如果你正在寻找某种对话框, 允许用户给你的应用程序加一些星号, 那么你找到了正确的帖子!
在本文中, 我们将向你展示如何在Android应用程序中安装和实现Android五星库。
1.安装Android五颗星库
Android五颗星库是一个小型库, 可帮助开发人员向其应用程序添加”为我的应用评分”对话框。之所以称为”五颗星”, 是因为该对话框根据用户给出的等级具有不同的行为。该库要求你在build.gradle文件中将minSdkVersion设置为15。修改build.gradle文件并添加新库:
dependencies {
implementation 'com.github.Angtrim:Android-Five-Stars-Library:v3.1'
}
更新文件后, 同步你的Android项目。有关此库的更多信息, 请访问Github上的官方存储库。
2.实施
安装后, 在你的应用程序中实现该库将非常容易。第一步, 在执行对话框的类中包括所需的名称空间:
// To display a message in the log (logcat)
import android.util.Log;
// Namespaces of the application
import angtrim.com.fivestarslibrary.FiveStarsDialog;
import angtrim.com.fivestarslibrary.NegativeReviewListener;
import angtrim.com.fivestarslibrary.ReviewListener;
然后, 继续显示带有以下代码段的对话框:
// In this example, we are running the dialog everytime the app starts
FiveStarsDialog fiveStarsDialog = new FiveStarsDialog(this, "dev@ourcodeworld.com");
fiveStarsDialog.setRateText("Your custom text")
.setTitle("Your custom title")
// If "Force Mode" is activated, when the user selects 4/5 stars
// he is immediately redirected to the Play Store, without asking for a confirm
.setForceMode(false)
// Market opened if a rating >= 2 is selected
.setUpperBound(2)
// OVERRIDE mail intent for negative review
.setNegativeReviewListener(this)
// Used to listen for reviews (if you want to track them )
.setReviewListener(this)
// Show after defines how many times after the execution of this snippet
// should the dialog appear (0 == immediately)
.showAfter(0);
请注意, 包含代码的类需要实现NegativeReviewListener和ReviewListener类, 以便将其用作setNegativeReviewListener和setReviewListener方法的上下文, 例如:
public class MainActivity extends AppCompatActivity implements NegativeReviewListener, ReviewListener { ... }
否则, 你将需要传递一个类的新实例, 该实例实现所提到的类并包含根据用户选择用作对话框的回调的2个方法:
@Override
public void onNegativeReview(int stars) {
Log.d(TAG, "Negative review " + stars);
}
@Override
public void onReview(int stars) {
Log.d(TAG, "Review " + stars);
}
现在, 每次执行该代码段时, 它将根据showAfter方法中提供的值来评估是否应显示该代码段。该库非常简单, 只需注意:
- 当用户点击确定或从不时, 对话框将不再显示
- 当用户点击NOT NOW时, 访问计数器将被重置, 并且在选定的时间后将再次显示该对话框。
- 如果用户给5颗星中的4颗或5颗, 则该用户将被转到Google Play商店页面以提供实际评分。
- 如果用户给5星中的3星或更少, 则要求用户将错误报告发送给开发人员。
完整的例子
下列类提供了使用该库的工作应用程序的完整示例:
package com.yourcompany.yourapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import angtrim.com.fivestarslibrary.FiveStarsDialog;
import angtrim.com.fivestarslibrary.NegativeReviewListener;
import angtrim.com.fivestarslibrary.ReviewListener;
public class MainActivity extends AppCompatActivity implements NegativeReviewListener, ReviewListener {
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// In this example, we are running the dialog everytime the app starts
FiveStarsDialog fiveStarsDialog = new FiveStarsDialog(this, "dev@ourcodeworld.com");
fiveStarsDialog.setRateText("Your custom text")
.setTitle("Your custom title")
.setForceMode(false)
// Market opened if a rating >= 2 is selected
.setUpperBound(2)
// OVERRIDE mail intent for negative review
.setNegativeReviewListener(this)
// Used to listen for reviews (if you want to track them )
.setReviewListener(this)
// Show after defines how many times after the execution of this snippet
// should the dialog appear (0 == immediately)
.showAfter(0);
}
@Override
public void onNegativeReview(int stars) {
Log.d(TAG, "Negative review " + stars);
}
@Override
public void onReview(int stars) {
Log.d(TAG, "Review " + stars);
}
}
Android五颗星库在内部使用android SharedPreferences类来存储代码片段以显示对话框的执行次数(showAfter方法)。
编码愉快!