我有一个应用程序在 Chrome 自定义选项卡中启动身份验证,并使用活动上的意图过滤器通过隐式意图将结果传递回我的应用程序。只要在 Web 上完成登录流程时自定义选项卡保留在前台,此方法就可以正常工作。但是,如果用户启用了双因素身份验证,则他们的 2FA 应用程序可能会在登录流程完成时位于前台。在这种情况下,永远不会启动隐式意图,并且永远不会启动我的活动。
当同时使用 Chrome 自定义选项卡和主 Firefox 应用程序打开登录流程时,会发生这种情况。我在 Android 9 和 10 上进行了尝试,以确保它不是由于 Android对在 Android 10的后台启动活动的限制。它在任何一个操作系统上都不起作用。
这是我清单中的活动的样子:
<activity
android:name=".LoginCompleteActivity"
android:exported="true">
<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:scheme="mycustomscheme" />
</intent-filter>
</activity>
我也尝试过将host
andpathPattern
包含在 中intent-filter
,但这也不起作用。当浏览器在后台时,如何强制从浏览器打开活动?