0

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

此外,如何传递一个深度链接参数以使其登陆特定的产品页面?谢谢!

4

3 回答 3

1

我希望能够从我的 android 应用程序中启动 Amazon Shopping 应用程序。这怎么可能?Intent 需要哪些参数?

您可以使用PackageManager#getLaunchIntentForPackage

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

此外,如何传递一个深度链接参数以使其登陆特定的产品页面?

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

于 2015-11-21T06:58:41.043 回答
1

使用问题

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

是它假设用户安装了 android 应用程序。如果它不存在,它将失败。所以,我决定使用 uri。我的第一次尝试是使用亚马逊文档Link to Amazon from inside 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);

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

于 2017-08-16T21:55:44.280 回答
0

如果您想深度链接到详细信息页面,首先您应该找到亚马逊的 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:// 版本 4.3.1 深度链接

于 2021-12-14T10:31:35.067 回答