标签:
最近软文的东西写的比较少,家里的小宝宝(麦麦)咬毛了,在细心照料。外加最近玩WOW比较上头,所以没花大时间在写文章上,今天看到个实现APP内提示跳转应用市场的库觉得还不错,推荐给大家
先来看看运行效果
用户点进去他会问是否评级,稍后评价等等等,原作者对这一系列功能封的比较彻底,方便大家使用,我们来看一下一个简单的提示页面如何配置。
在Activity初始化阶段把一些需要配置的东西设置好
AppRate.with(this)
.setStoreType(StoreType.GOOGLEPLAY) //默认Google, 还有个是亚马逊
.setInstallDays(0) // 默认10,这里为了演示效果,设置装的时候就演示
.setLaunchTimes(3) // 设置启动的时间
.setRemindInterval(2) // 提醒的间隔
.setShowLaterButton(true) // 是否显示推迟按钮
.setDebug(false) // 是否Debug状态,默认false
.setMessage("分享我们好吗")//设置说明文字
.setOnClickButtonListener(new OnClickButtonListener() { //按钮监听事件
@Override
public void onClickButton(int which) {
Log.d(MainActivity.class.getName(), Integer.toString(which));
}
})
.monitor();
在需要展现的地方把他SHOW出来即可
// 显示对话框
AppRate.showRateDialogIfMeetsConditions(this);
当然你还可以设置Title之类的,像这样
setTitle()//设置标题
setNeutralText()//设置按钮文字内容
当然,你觉得这个 UI你不喜欢,你要符合你公司美工制定的画面,也OK
调用setView方法,像这样
LayoutInflater inflater = (LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.custom_dialog, (ViewGroup)findViewById(R.id.layout_root));
AppRate.with(this).setView(view).monitor();
以上是基础设置,接下来是比较蛋疼的地方,作者一定不是国人,所以没有那么繁杂的市场发布问题,而且我们无法Goolgle Play,所以默认的模式我们不能用,所以这也就是之前我为什么没贴下载地址的原因,因为我们必须加以修改。
OK接下来讲下改什么地方
源码长这样
用于分享URL操作的是
UriHelper
IntentHelper
StoreType
DialogManager
StoreType是枚举类型,用于区分我们到底是哪个市场,如果你是要到小米,要到豌豆荚,就在里面加吧
public enum StoreType {
GOOGLEPLAY,
AMAZON//, 你要的内容
}
IntentHelper 是你具体传递Intent的地方
final class IntentHelper {
private static final String GOOGLE_PLAY_PACKAGE_NAME = "com.android.vending";
private IntentHelper() {
}
static Intent createIntentForGooglePlay(Context context) {
String packageName = context.getPackageName();
Intent intent = new Intent(Intent.ACTION_VIEW, getGooglePlay(packageName));
if (isPackageExists(context, GOOGLE_PLAY_PACKAGE_NAME)) {
intent.setPackage(GOOGLE_PLAY_PACKAGE_NAME);
}
return intent;
}
static Intent createIntentForAmazonAppstore(Context context) {
String packageName = context.getPackageName();
return new Intent(Intent.ACTION_VIEW, getAmazonAppstore(packageName));
}
}
UriHelper 做一些URL拼接处理
final class UriHelper {
private static final String GOOGLE_PLAY = "https://play.google.com/store/apps/details?id=";
private static final String AMAZON_APPSTORE = "amzn://apps/android?p=";
private UriHelper() {
}
static Uri getGooglePlay(String packageName) {
return packageName == null ? null : Uri.parse(GOOGLE_PLAY + packageName);
}
static Uri getAmazonAppstore(String packageName) {
return packageName == null ? null : Uri.parse(AMAZON_APPSTORE + packageName);
}
static boolean isPackageExists(Context context, String targetPackage) {
PackageManager pm = context.getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(0);
for (ApplicationInfo packageInfo : packages) {
if (packageInfo.packageName.equals(targetPackage)) return true;
}
return false;
}
}
这些都处理完了 在DialogManager加判断的代码就好
builder.setPositiveButton(options.getPositiveText(context), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final Intent intentToAppstore = options.getStoreType() == StoreType.GOOGLEPLAY ?
createIntentForGooglePlay(context) : createIntentForAmazonAppstore(context);
context.startActivity(intentToAppstore);
setAgreeShowDialog(context, false);
if (listener != null) listener.onClickButton(which);
}
});
默认的在你点击评价之后会去判断你是哪个应用商店,你加在onClick方法内就好了
这个控件已加入大套餐,安利如下:https://github.com/ddwhan0123/Useful-Open-Source-Android/blob/master/README.md
Git:https://github.com/hotchemi/Android-Rate
下载地址:https://github.com/hotchemi/Android-Rate/archive/master.zip
翻翻git之---简单的配置达到产品在应用市场的评价跳转功能
标签:
原文地址:http://blog.csdn.net/ddwhan0123/article/details/51482308