防止在原始应用

时间:2018-04-17 18:17:14

标签: android android-intent deep-linking branch.io

我正在使用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>

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

最终确定解决此问题的方法是进入AndroidManifest.xml,并在我的主要活动上设置android:launchMode="singleTask"

我知道in the android docs表示不推荐singleTask。我相信这是因为它阻止您返回,但是我们接管了硬件“后退”按钮的功能,因此不相关。同样根据this SO answer,在我们的上下文中似乎是正确的做法。