我希望能够从我的 android 应用程序中启动Amazon Shopping应用程序。这怎么可能?Intent 需要哪些参数?这是亚马逊购物应用程序的链接:https: //play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping&hl=en
此外,如何传递一个深度链接参数以使其登陆特定的产品页面?谢谢!
我希望能够从我的 android 应用程序中启动Amazon Shopping应用程序。这怎么可能?Intent 需要哪些参数?这是亚马逊购物应用程序的链接:https: //play.google.com/store/apps/details?id=com.amazon.mShop.android.shopping&hl=en
此外,如何传递一个深度链接参数以使其登陆特定的产品页面?谢谢!
我希望能够从我的 android 应用程序中启动 Amazon Shopping 应用程序。这怎么可能?Intent 需要哪些参数?
您可以使用PackageManager#getLaunchIntentForPackage
startActivity(getPackageManager().getLaunchIntentForPackage("com.amazon.mShop.android.shopping"));
此外,如何传递一个深度链接参数以使其登陆特定的产品页面?
这取决于亚马逊应用程序是否实施深度链接并暴露intent-filter
给外部应用程序。我认为这是不可能的,但也许你可以问亚马逊。
使用问题
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);
它在浏览器中打开了搜索,并带有打开应用程序的选项。我想可以先尝试使用亚马逊应用程序路线,如果失败,请打开此浏览器版本。
如果您想深度链接到详细信息页面,首先您应该找到亚马逊的 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 深度链接