在Android中使用深层链接和广告

时间:2015-03-13 11:22:09

标签: android deep-linking

如何在Android中点击添加应用程序打开另一个应用程序的特定页面?我正在创建一个Android应用程序,其中显示添加。当点击该添加它打开游戏商店。但我想使用深层链接打开该应用程序的特定页面。例如,当我点击它时,我的应用程序中添加snapdeal提供添加它打开snapdeal的特定页面。如何做到这一点?

1 个答案:

答案 0 :(得分:0)

在Playstore中添加要打开的应用的包名称:

String appPackageName = "package_xy"; // eg. com.twitter.android

try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
}catch (android.content.ActivityNotFoundException e) {
    //if playstore app not installed
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)));
}

所以你可能需要你的广告来发送他们的应用程序的包名称。或者只是打开一个网址(如果它是一个应用程序,可以在上面的catch中发送playstore浏览器链接,这样你就可以检测到play.google.com部分并相应地替换,或者只是打开普通网站,如果它不是一个Playstore网址)。

您询问如果已经安装了应用程序会发生什么:仍然相同。你应该先检查一下:

Intent i;
PackageManager manager = getPackageManager();
String appPackageName = "package_xy"; 

try {
    i = manager.getLaunchIntentForPackage(appPackageName);
    if (i == null)
        throw new PackageManager.NameNotFoundException();
    i.addCategory(Intent.CATEGORY_LAUNCHER);
    startActivity(i);
} catch (PackageManager.NameNotFoundException e) 
{
    //open playstore instead
}

所以这只是众多方式中的一种。如果在设备上找不到应用程序,则尝试将失败并执行catch。如果发现它将被打开。
在twitter的情况下,我甚至可以用这样的深层链接打开它:
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("twitter://status?status_id="+id));

对于某些类似PDF的东西,有一些方法可以打开应用程序选择器,但我不认为这就是你需要的东西。 如果您使用上述代码,您应该没问题。只需将第一个片段放在第二个片段中,你应该没问题。