对于我的用户,我在Firebase中发送验证电子邮件。我收到的链接是:
https://myprojectid.firebaseapp.com/...
当用户点击链接时,我希望打开应用程序并导航到特定屏幕。下面是我的尝试。在清单文件中,我有:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<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="myprojectid.firebaseapp.com"/>
</intent-filter>
<meta-data
android:name="android.app.lib_name"
android:value="" />
</activity>
我读到这里,添加android:autoVerify="true"
将停止歧义消除对话框出现。但这不是真的。这里也是我的NavHost:
NavHost(
navController = navController,
startDestination = Screen.SignInScreen.route
) {
composable(
route = Screen.SignInScreen.route
) {
SignInScreen{
navController.navigate(Screen.CheckScreen.route)
}
}
composable(
route = Screen.CheckScreen.route,
deepLinks = listOf(
navDeepLink {
uriPattern = "https://myprojectid.firebaseapp.com"
action = Intent.ACTION_VIEW
}
)
) {
CheckScreen()
}
}
当我点击链接时,系统仍然要求我选择使用Chrome浏览器还是我的应用程序打开。我该如何避免这种情况?如有任何帮助,我们将不胜感激。
1条答案
按热度按时间kqqjbcuj1#
从Android 11开始,您需要指定软件包管理器的使用。因此,在Manifest顶层添加以下内容:
然后开始你的意图: