我正在使用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>
我需要哪些其他意图行动或类别?
您应该只需要此处列出的intent过滤器:
如果它在Salesforce浏览器中打开您的应用程序,则可能是Salesforce阻止用户进行深层链接。
真正明确解决这个问题的是进入AndroidManifest.xml
并在我的主要活动中设置android:launchMode="singleTask"
。
我知道in the android docs它说不推荐使用singleTask。我相信这是因为它阻止你回去但我们接管硬件后退按钮的功能,所以这是不相关的。同样根据this SO answer,在我们的背景下做似乎是正确的事情。