【问题标题】:How to launch Amazon Shopping app in Android app?如何在 Android 应用中启动亚马逊购物应用?
【发布时间】:2016-02-23 13:58:33
【问题描述】:

我希望能够从我的 Android 应用程序启动 亚马逊购物 应用程序。这怎么可能? Intent 需要哪些参数?这是亚马逊购物应用程序的链接:https://play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping&hl=en

此外,如何传递深层链接参数以使其到达特定的产品页面?谢谢!

【问题讨论】:

    标签: android android-intent amazon android-pendingintent amazon-appstore


    【解决方案1】:

    我希望能够从我的安卓系统启动亚马逊购物应用 应用。这怎么可能?需要什么参数 进入意图?

    您可以使用PackageManager#getLaunchIntentForPackage

    startActivity(getPackageManager().getLaunchIntentForPackage("com.amazon.mShop.android.shopping"));
    

    另外,怎么可能传递一个深层链接参数,所以 它登陆特定的产品页面?

    这取决于亚马逊应用程序是否实现深度链接并将intent-filter暴露给外部应用程序。我认为这是不可能的,但也许你可以问问亚马逊。

    【讨论】:

    • 非常感谢一树。此包名称适用于启动亚马逊购物应用程序。现在我想弄清楚如何传递参数以登陆特定的产品页面。此页面有一些文档,但我不确定此 API 是否仅适用于 Amazon Apps:developer.amazon.com/public/apis/earn/in-app-purchasing/docs-v2/…
    • 您提供的链接似乎仅适用于亚马逊应用商店。我发现了这个 SO 线程 stackoverflow.com/questions/27693062/… 并且它似乎在我的设备上工作 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("com.amazon.mobile.shopping://www.amazon.com/products/B00KWFCV32/"));开始活动(意图);但由于它没有公开记录(或者我找不到文件),我建议不要使用它(或者使用您自担风险有一天链接会被破坏)
    • 非常感谢@Kazuki 的帮助!
    【解决方案2】:

    使用问题

    startActivity(getPackageManager().getLaunchIntentForPackage("com.amazon.mShop.android.shopping"));
    

    是它假设用户安装了 android 应用程序。如果它不存在,它将失败。所以,我决定使用 uri。我的第一次尝试是使用亚马逊文档Link to Amazon from within Your App

    但这并没有那么好。看起来它只搜索应用程序,而不是所有产品。当我尝试将 asin 参数用于非应用产品时,它不起作用。所以我做了以下事情,它给了我想要的东西。

        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.amazon.com/Red-blue-Anaglyph-3D-Glasses-game-Extra/dp/B003LWYGPE/ref=pd_sim_23_1?_encoding=UTF8&pd_rd_i=B003LWYGPE&pd_rd_r=3REW4891981B4R6WAB66&pd_rd_w=NcbkD&pd_rd_wg=GDhOT&psc=1&refRID=3REW4891981B4R6WAB66"));
        startActivity(browserIntent);
    

    它在浏览器中打开了搜索,并带有打开应用程序的选项。我想可以先尝试亚马逊应用路线,如果失败,请打开此浏览器版本。

    【讨论】:

      【解决方案3】:

      如果你想深度链接到详情页面,首先你应该找到亚马逊的product_id。试试这个方案:

      com.amazon.mobile.shopping://content/item?id=<some valid id>
      

      这里尝试的所有代码都是:

       jumpUrl?.let { it ->
                      try {
                          val intent = Intent(Intent.ACTION_VIEW)
                          val findStr = "/dp/"
                          val findIndex = it.indexOf(findStr)
                          if (findIndex != -1) {
                              intent.data = Uri.parse(
                                  "com.amazon.mShop.android.shopping://www.amazon.com/products/${
                                      it.substring(
                                          findIndex + findStr.length
                                      )
                                  }"
                              )
                          } else {
                              intent.data = Uri.parse(it)
                          }
                          intent.flags = intent.flags or Intent.FLAG_ACTIVITY_NEW_TASK
                          intent.let { tent ->
                              context.startActivity(
                                  tent
                              )
                          }
                      } catch (exception: ActivityNotFoundException) {
                          exception.printStackTrace()
                          val intent = Intent(Intent.ACTION_VIEW)
                          intent.data = Uri.parse(it)
                          intent.flags = intent.flags or Intent.FLAG_ACTIVITY_NEW_TASK
                          context.startActivity(intent)
                      }
                  }
      

      我的参考是:iPhone iOS Amazon Scheme / URI Not Working Anymore amzn:// version 4.3.1 Deep Linking

      【讨论】:

        猜你喜欢
        • 2013-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-12
        • 2021-12-23
        相关资源
        最近更新 更多