翻翻git之---简单的配置达到产品在应用市场的评价跳转功能

Posted 王亟亟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻翻git之---简单的配置达到产品在应用市场的评价跳转功能相关的知识,希望对你有一定的参考价值。

转载请注明出处:王亟亟的大牛之路

最近软文的东西写的比较少,家里的小宝宝(麦麦)咬毛了,在细心照料。外加最近玩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之---简单的配置达到产品在应用市场的评价跳转功能的主要内容,如果未能解决你的问题,请参考以下文章

翻翻git之---实现下拉到底刷新RecycleView InfiniteScroll

翻翻git之---闪烁动画的TextView RevealTextView

翻翻git之---自定义View实现水位上涨效果 WaveProgressView

翻翻git之---溜的飞起的加载效果AVLoadingIndicatorView

翻翻git之---一个丰富的通知工具类 NotifyUtil

翻翻git之---基于universalimageloader实现的图片加载控件BlurImageView