防止在原始应用程序的浏览器中打开Deeplink

问题描述 投票:4回答:2

我正在使用Branch.io从Salesforce应用程序到我的Cordova应用程序的Deeplink。但是,当我单击Salesforce应用程序中的深层链接时,它只是在Salesforce应用程序内的浏览器中打开我的应用程序,而不是实际将我带到我的应用程序。看起来我应该使用<intent-filter/>来实现这一点,但它似乎无法将我带出原始的Salesforce应用程序。这是我的<intent-filter/>目前是:

 <intent-filter android:name="io.branch.sdk.UriScheme">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="myapp" />
 </intent-filter>
 <intent-filter android:autoVerify="true" android:name="io.branch.sdk.AppLink">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:host="myapp.app.link" android:scheme="https" />
</intent-filter>

我需要哪些其他意图行动或类别?

android android-intent deep-linking branch.io
2个回答
1
投票

您应该只需要此处列出的intent过滤器:

如果它在Salesforce浏览器中打开您的应用程序,则可能是Salesforce阻止用户进行深层链接。


0
投票

真正明确解决这个问题的是进入AndroidManifest.xml并在我的主要活动中设置android:launchMode="singleTask"

我知道in the android docs它说不推荐使用singleTask。我相信这是因为它阻止你回去但我们接管硬件后退按钮的功能,所以这是不相关的。同样根据this SO answer,在我们的背景下做似乎是正确的事情。

© www.soinside.com 2019 - 2024. All rights reserved.