最近有一个需求,产品经理按照IOS发布新版后在appstore评论或者评分功能设计的,让Android跳转到本机应用商店中本应用的详情页。
上网查了一些资料,实现步骤如下:

弹出对话框:

 /**     * 应用评价对话框     *     * @param activity 上下文     * @return 对话框     */    public static Dialog showAppSuggestDialog(Activity activity) {        Dialog dialog = new Dialog(activity, R.style.MyDialog);        View contentView = View.inflate(activity, R.layout.dialog_version_suggest, null);        dialog.setContentView(contentView);        dialog.setCanceledOnTouchOutside(true);        dialog.show();        ImageView update_close = contentView.findViewById(R.id.update_close);        TextView tv_say_bad = contentView.findViewById(R.id.tv_say_bad);        TextView tv_say_good = contentView.findViewById(R.id.tv_say_good);        update_close.setOnClickListener(view -> dialog.dismiss());        tv_say_bad.setOnClickListener(view -> {            dialog.dismiss();            toMarket(activity);        });        tv_say_good.setOnClickListener(view -> {            dialog.dismiss();            toMarket(activity);        });        return dialog;    }

MyDialog为对话框样式:

点击对话框按钮获取跳转意图:

 /**     * 获取跳转意图     *     * @param context 上下文     * @return 意图     */    public static Intent getIntent(Context context) {        StringBuilder localStringBuilder = new StringBuilder().append("market://details?id=");        String str = context.getPackageName();        localStringBuilder.append(str);        Uri localUri = Uri.parse(localStringBuilder.toString());        return new Intent("android.intent.action.VIEW", localUri);    }

判断是否有应用商店:

/**     * 判断是否有应用市场     *     * @param context 上下文     * @param marketIntent  跳转意图     * @return 是否有应用市场true/false     */    public static boolean judge(Context context, Intent marketIntent) {        List localList = context.getPackageManager().queryIntentActivities(marketIntent, PackageManager.GET_RESOLVED_FILTER);        if ((localList != null) && (localList.size() > 0)) {            return false;        } else {            return true;        }    }

跳转到应用详情:

/**     * 跳转到应用详情页     *     * @param activity 上下文     */    private static void toMarket(Activity activity) {        Intent intent = getIntent(activity);        boolean b = judge(activity, intent);        if (!b) {            try {                activity.startActivity(intent);            } catch (ActivityNotFoundException e) {                MyToast.showToast(Constants.ERROR_NO_MARKET);            }        } else {            MyToast.showToast(Constants.ERROR_NO_MARKET);        }    }

最终实现结果:
评论和评分,在Android上只能进入详情页,由用户点击评价进到评分和评论的页面,所以跳转逻辑一样;
进行跳转只能跳转到本机已安装应用,所以进入的是本机预装的应用商店。如果本机应用商店中没有收录自己的应用,跳转后搜索不到应用包名。ps:然而上线前这个功能被pass掉了。

更多相关文章

  1. Android 常用dialog提示对话框
  2. Android webview监听网页对话框点击事件
  3. 第32章、日期对话框DatePickerDialog(从零开始学Android)
  4. Android上下文服务管理查询过程
  5. 选项菜单、子菜单、上下文菜单的使用
  6. Android 自定义布局对话框避免全屏的设置
  7. Android关闭开机弹出SIM卡变动提示对话框
  8. Android中对话框的工具类
  9. android 单击 切换图片 --- 注意图片大小

随机推荐

  1. android 检测应用异常 UncaughtException
  2. Android Activity去除标题栏和状态栏(z)
  3. android中drawable显示到view上的过程
  4. 控件:拖动条 --- SeekBar(改变屏幕亮度)
  5. android 代码设置apn
  6. Android 通过代码执行Linux 命令 echo 命
  7. android的单个图片 上传服务器
  8. 网址收藏
  9. android 漂亮的listview
  10. 第四例:Intent启动Activity的几种方式(一)