项目中需要跳转Google Play商店
原理十分简单,构建一个ACTION_VIEW标记的Intent,并给一个如下结构的 Uri 即可:
"market://details?id=" + getPackageName() //商店中使用包名来唯一标识区分应用
在 Android 平台上,正常情况下手机中的应用商店应该是 Google Play
但是由于各种你懂我也懂的原因,国内基本上无法使用 Google Play 服务。
好在广泛的第三方应用市场大多都实现了这个接口。
代码注释很详细:
//这里开始执行一个应用市场跳转逻辑,默认this为Context上下文对象
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + getPackageName())); //跳转到应用市场,非Google Play市场一般情况也实现了这个接口
//存在手机里没安装应用市场的情况,跳转会包异常,做一个接收判断
if (intent.resolveActivity(getPackageManager()) != null) { //可以接收
startActivity(intent);
} else { //没有应用市场,我们通过浏览器跳转到Google Play
intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
//这里存在一个极端情况就是有些用户浏览器也没有,再判断一次
if (intent.resolveActivity(getPackageManager()) != null) { //有浏览器
startActivity(intent);
}
}
需要注意的就是,如果界面跳转失败,会抛出异常,因此能否跳转需要进行判断。
根据以上,同理使用以下Uri进行替换:
Uri.parse("market://search?q=pub:Author Name"); //跳转到商店搜索界面,并搜索开发者姓名
Uri.parse("market://search?q=Keyword"); //跳转到商店搜索界面,并搜索关键词
网友评论