【问题标题】:Deep linking sometimes opens wrong activity深度链接有时会打开错误的活动
【发布时间】:2020-05-08 14:46:18
【问题描述】:

我们在深度链接方面遇到了一些问题。我们有两个深度链接提供商。 Firebase 和分支。我们的用户遇到问题,他们单击 Firebase 链接,假设打开活动 A,但它打开了活动 B(用于分支)。不幸的是,我们无法重现它,但它发生在我们的一些用户身上。当这种情况发生时,它们总是可以重现的。

这是我们的 Firebase 设置

<activity android:name=".activity.FirebaseActivity"
    android:screenOrientation="portrait">
    <intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data
        android:host="firebase.page.link"
        android:scheme="https" />
    </intent-filter>
</activity>

对于分支:

<!-- Branch URI scheme -->
            <intent-filter>
                <data
                    android:host="open"
                    android:scheme="branch" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>

            <!-- Branch App Links -->
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="branch.app.link"
                    android:scheme="https" />
            </intent-filter>
        </activity>

【问题讨论】:

    标签: android deep-linking firebase-dynamic-links branch.io


    【解决方案1】:

    终于找到了导致这个问题的问题。

    我们的动态链接域为 {firebase-dynamic-domain}.page.link。但是,在某些情况下,当用户被重定向到应用程序时,链接显示为

    https://{your-project}.firebaseapp.com&...

    而不是

    https://{firebase-dynamic-domain}.page.link?link=https://{your-project}.firebaseapp.com&...

    要解决此问题,您也可以为过滤器添加项目名称域或在启动器活动中捕获此问题

    <activity android:name=".activity.FirebaseActivity"
        android:screenOrientation="portrait">
        <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
    
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    
        <data
            android:host="firebase.page.link"
            android:scheme="https" />
        </intent-filter>
        <intent-filter android:autoVerify="true">
        <action android:name="android.intent.action.VIEW" />
    
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    
        <data
            android:host="{your-project}.firebaseapp.com"
            android:scheme="https" />
        </intent-filter>
    </activity>
    

    【讨论】:

      【解决方案2】:

      这里有个分店-

      我们从未遇到过这个问题。 Firebase 和 Branch 可以完美地并行工作。如果您单击分支链接,它将打开相应的活动。由于您没有全面发生这种情况,我建议您重新检查配置,看看是否存在观察到这种情况的模式,并尝试从您的端复制它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 2015-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        • 2020-06-15
        相关资源
        最近更新 更多