Android deep link始终首先在浏览器中打开,然后是正确的活动

Android deep link始终首先在浏览器中打开,然后是正确的活动,android,android-intent,browser,android-5.0-lollipop,deep-linking,Android,Android Intent,Browser,Android 5.0 Lollipop,Deep Linking,在安卓5.0版上,我们使用深度链接,因为应用程序链接只能从安卓6.0版开始工作。我们在这些设备上面临一个问题:当从主机应用程序启动intent时,链接首先在浏览器中打开,然后在短暂延迟(2-3秒)后,它会启动目标应用程序,即使我们选择了“始终在应用程序中打开”选项。我们是否可以直接在应用程序中打开链接而不在浏览器中短暂打开 <activity android:name=".deeplinking.DeepLinkingNavigationActivity">

在安卓5.0版上,我们使用深度链接,因为应用程序链接只能从安卓6.0版开始工作。我们在这些设备上面临一个问题:当从主机应用程序启动intent时,链接首先在浏览器中打开,然后在短暂延迟(2-3秒)后,它会启动目标应用程序,即使我们选择了“始终在应用程序中打开”选项。我们是否可以直接在应用程序中打开链接而不在浏览器中短暂打开

    <activity android:name=".deeplinking.DeepLinkingNavigationActivity">
        <intent-filter android:priority="999”>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https"
            android:host="@string/deep_linking_host"
            android:pathPrefix="/authorize/" />
        </intent-filter>
    </activity>


事实上,你自己的回答是正确的——在5.0版的Android中,深度链接的方式是通过URI方案或意图,两者都需要浏览器重定向来实现。因此,您将拥有一个打开的中间浏览器(无法避免)


请注意,不同的浏览器需要不同的深度链接行为(URI方案、意图,甚至根本不支持深度链接)。

如果未安装应用程序,则浏览器需要处理它,因此我们需要http/https方案。当它询问第一次打开哪个应用程序时,它正确地显示了“浏览器”和“我们的应用程序”。但即使在每次使用“始终”选择我们的应用程序后,它都会先打开浏览器,然后打开应用程序。如果有任何关于此的官方文档,请转发给我。使用URI方案将需要您执行一些从浏览器执行的
位置。href=myapp://
,因此您需要为此打开浏览器。还有很多应用程序都有应用程序内浏览器,所以它们首先打开浏览器,然后进行重定向来处理链接。我并不完全理解解决方案。我也面临同样的错误。我们不能跳过要在主机应用程序中启动的活动吗。