android - 如何像在网络中的开放引荐来源网址中那样找到android应用程序深层链接的点击位置?

标签 android deep-linking

我需要找到我的应用程序打开的来源,例如(fb、twitter、g+)有没有办法找到它。 我知道在 url 的 header 中有一个开放的引荐来源网址,但我如何在 android 应用程序中获取此信息

最佳答案

Google 为此提供在线资料: https://codelabs.developers.google.com/codelabs/deeplink-referrer

总结

您可以使用 Activity#getReferrer()获取深层链接的引荐来源网址。它从 API 22 开始可用。

对于 API 级别 21 及以下,您可以使用上述在线资料中的以下代码段:

    private static final String REFERRER_NAME = "android.intent.extra.REFERRER_NAME";


 /** Returns the referrer on devices running SDK versions lower than 22. */
    private Uri getReferrerCompatible(Activity activity) {
        Intent intent = activity.getIntent();
        Uri referrerUri = intent.getParcelableExtra(Intent.EXTRA_REFERRER);
        if (referrerUri != null) {
            return referrerUri;
        }
        String referrer = intent.getStringExtra(REFERRER_NAME);
        if (referrer != null) {
            // Try parsing the referrer URL; if it's invalid, return null
            try {
                return Uri.parse(referrer);
            } catch (ParseException e) {
                return null;
            }
        }
        return null;
    }

关于android - 如何像在网络中的开放引荐来源网址中那样找到android应用程序深层链接的点击位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707394/

相关文章:

google-play - App Store 和 Google Play 的 URL 格式,用于安装具有深度链接的应用程序

java - 来自类的 Intent 未启动

java - 单击时出现 NullPointerException,即使按钮变量设置为 "field variable"

java - 从 json 响应将字符串转换为 android 中的数组

android 致命异常微调器

hyperlink - 如何为 Viber 制作深度链接,重定向到手机上的特定号码

struct - CUDA:在结构中分配结构数组

ios - react native 分支非分支链接始终

Android 深层链接路径、pathPrefix 或 pathPattern 不起作用

android - 当任何事件触发器在调用事件处理函数之前获取 View 对象时