在一个应用程序中接收深层链接和浏览链接

时间:2018-09-18 11:08:08

标签: android android-intent android-manifest deep-linking

我正在开发的应用程序是浏览器,并且在特定方案中它也具有自己的深层链接。

由于这些深层链接的性质,它们需要具有“ http” /“ https”方案,以便在未安装应用程序的情况下也可以在浏览器中打开。

当从具有自己的重定向机制的应用程序中打开链接时,这种情况无法工作。 示例:从Gmail打开会导致链接转换为“ http://www.google.com/url?q= ...”

这仅在应用程序还实现了意图过滤器时发生:

<intent-filter android:icon="@drawable/ic_browser" android:label="@string/my_browser">
            <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" />
            <data android:scheme="https" />
        </intent-filter>

如果我删除通用浏览意图过滤器,而只保留特定的深层链接过滤器,例如:

<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:host="a.b.c"
                    android:scheme="http" />
            </intent-filter>

然后,诸如Gmail之类的应用程序将不会创建重定向,而是会使用深层链接正确打开我的应用程序。

所以我希望的行为是:  1.有一个“浏览器”意图过滤器,可以打开任何Web链接,因此我可以在我的应用程序中显示它  2.设置“深层链接”意图过滤器,这样我就可以在应用程序中使用深层链接,而该链接不会在浏览器中打开。

同样,只要Gmail不会决定创建重定向URL,此方法就可以正常工作-我希望以一种安全可靠的方式来克服这一点。

0 个答案:

没有答案