如何查找Android应用程序深层链接的位置,就像在Web中打开引荐来源一样单击



我需要找到我的应用程序打开的来源(fb,twitter,g +)有没有办法找到它。我知道 url 的标头中有一个开放的引用,但我如何在 android app

看看 Firebase 动态链接https://firebase.google.com/docs/dynamic-links/

试试这个

在您的 android 清单文件上注册您的活动,该活动必须在单击链接时打开

 <activity
            android:name=".YOURACTIVITY"
            android:label="@string/app_name"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="http"
                    android:host="somedomainname.com"
                    android:pathPrefix="/index"/>
            </intent-filter>
        </activity>

在你的网页上

<a href="android-app:/your android app packagename/http://somedomainname.com/index">Click me</a>

取决于@Ahmad Fadli答案(有效,但可能无法检测到某些应用程序)我有一个类似的用例,所以有人可能需要它,你也可以同时使用它们:

fun getReferrerCompatible(activity: Activity?): String? {
    if (activity == null)
        return null
    try {
        val intent = activity.intent
        val bundle = intent.extras
        if (bundle != null) {
            val keySet = bundle.keySet().toTypedArray()
            for (k in keySet) {
                if (k.contains("application_id")) {
                    return bundle.getString(k)
                }
            }
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            return activity.referrer?.toString()
        }
    } catch (e: Exception) {
        Crashlytics.logException(e)
    }
    return null
}

默认referrer实际上不会为您提供某些深层链接的Chrome应用程序,由于某种原因它会返回"google.com"

相关内容

  • 没有找到相关文章

最新更新