• 售前

  • 售后

热门帖子
入门百科

【Google Play】从 Android 应用中跳转到 Google Play 中 ( 跳转代码示例 |

[复制链接]
扬帆46 显示全部楼层 发表于 2022-1-12 19:00:34 |阅读模式 打印 上一主题 下一主题
文章目录



前言


本博客参考资料





一、从 Android 应用跳转到 Google Play 代码



首先 , 创建 Intent , 设置其 Action 为 “android.intent.action.VIEW” ,
  1.         /**
  2.          * 活动操作:向用户显示数据。这是最常见的
  3.          * 对数据执行的操作——这是可以对数据执行的通用操作
  4.          * 获取最合理事件发生的一段数据。例如
  5.          * 在联系人条目上使用时,它将查看该条目;当在机器上使用时
  6.          * mailto:URI 它将弹出一个充满信息的由URI提供的撰写窗口.
  7.          * 当与 tel:URI 一起使用时,它将调用拨号器。
  8.          * <p>输入:{@link#getData}是从中检索数据的URI。
  9.          * <p>输出:无。
  10.          */
  11.     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
  12.     public static final String ACTION_VIEW = "android.intent.action.VIEW";
复制代码
然后 , 设置 Uri 操作数据 , 该 Uri 就是对应的 Google Play 页面链接 ;
  1.         /**
  2.          * 设置此意图操作的数据。这种方法是自动的
  3.          * 清除以前由{@link#setType} 或
  4.          * {@link#setTypeAndNormalize} 设置的内容。
  5.          *
  6.          * <p><em>注意:Android框架中的方案匹配是
  7.          * 区分大小写,与正式RFC不同。因此
  8.          * 您应该始终使用小写方案编写Uri,
  9.          * 或者使用{@linkuri#normalizeScheme}或者
  10.          * {@link#setDataAndNormalize}
  11.          * 确保方案转换为小写</em>
  12.          *
  13.          * @param data 此意图现在针对的数据的Uri。
  14.          *
  15.          * @return 返回相同的Intent对象,用于链接多个调用
  16.          * 变成一句话。
  17.          *
  18.      * @see #getData
  19.      * @see #setDataAndNormalize
  20.      * @see android.net.Uri#normalizeScheme()
  21.          */
  22.     public @NonNull Intent setData(@Nullable Uri data) {
  23.         mData = data;
  24.         mType = null;
  25.         return this;
  26.     }
复制代码
最后 , 设置一个明确的应用程序包名 , 设置 “com.android.vending” 包名可以在跳转后直接显示 Google Play 对应的页面 , 不再弹出选择器 ; 否则打开时 , 会显示应用的选择器 ;
  1.         /**
  2.          * (通常是可选的)设置一个明确的应用程序包名称,该名称限制此意图将解析到的组件。
  3.          * 如果保留默认值null,则将考虑所有应用程序中的所有组件。
  4.          * 如果非null,则意图只能匹配给定应用程序包中的组件。
  5.          *
  6.          * @param packageName要处理的应用程序包的名称
  7.          * 或null以允许任何应用程序包。
  8.          *
  9.          * @return返回相同的Intent对象,用于链接多个调用
  10.          * 变成一句话。
  11.          *
  12.          * @see#getPackage
  13.          * @see#resolveActivity
  14.          */
  15.     public @NonNull Intent setPackage(@Nullable String packageName) {
  16.         if (packageName != null && mSelector != null) {
  17.             throw new IllegalArgumentException(
  18.                     "Can't set package name when selector is already set");
  19.         }
  20.         mPackage = packageName;
  21.         return this;
  22.     }
复制代码

代码示例 :


  • Kotlin :
  1. val intent = Intent(Intent.ACTION_VIEW).apply {
  2.     data = Uri.parse(
  3.             "https://play.google.com/store/apps/details?id=com.example.android")
  4.     setPackage("com.android.vending")
  5. }
  6. startActivity(intent)
复制代码


  • Java :
  1. Intent intent = new Intent(Intent.ACTION_VIEW);
  2. intent.setData(Uri.parse(
  3.         "https://play.google.com/store/apps/details?id=com.example.android"));
  4. intent.setPackage("com.android.vending");
  5. startActivity(intent);
复制代码
上述代码来自 链接到 Google Play - 从 Android 应用提供链接 地址 ;




二、Google Play 页面的链接格式



Google Play 页面的链接格式 :


  • 应用的商品详情页面 :
  1. https://play.google.com/store/apps/details?id=<package_name>
  2. http://play.google.com/store/apps/details?id=com.google.android.apps.maps
复制代码


  • 指定开发者页面 : 5700313618786177705 是指定的开发者 id ;
  1. https://play.google.com/store/apps/dev?id=<developer_id>
  2. https://play.google.com/store/apps/dev?id=5700313618786177705
复制代码


  • 搜索结果页面 : 搜索 maps 内容 , c=apps 表示只在 Google Play 中搜索应用 ;
  1. https://play.google.com/store/search?q=<query>
  2. http://play.google.com/store/search?q=maps&c=apps
复制代码

  1. https://play.google.com/store/apps/collection/<collection_name>
  2. http://play.google.com/store/apps/collection/topselling_free
复制代码

  1. https://play.google.com/store/apps/details?id=<package_name>&launch=true
复制代码




三、Google Play 免安装体验



参考 Google Play Instant 文档 ;

来源:https://blog.caogenba.net/han1202012/article/details/122412453
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作