用于重新打开“chrome 自定义选项卡”的 Xamarin Forms Android 活动

问题描述 投票:0回答:1

我们在适用于 Android 和 iOS 的最新 Xamarin Forms 中开发了应用程序 A。此问题仅在 Android 上出现。

  1. 为了登录应用程序 A (Android),我们使用 WebAuthenticator.AuthenticateAsync 使用所需的 URL 打开“chrome-custom-tabs”。
  2. 用户在所需的 URL 上输入凭据,然后
  3. 然后重定向到另一个身份验证应用程序-B(丹麦 MitID-应用程序),用户在其中确认登录。
  4. 在应用程序 B 中确认后,用户应该切换回从应用程序 A 打开的“chrome-custom-tabs”浏览器以完成登录过程。
  5. 该过程完成后,用户将使用提供给 WebAuthenticator 的 callBackUri 重定向回应用程序 A。

但是我在步骤4中遇到了问题。我设置了一个可以打开app-A的应用程序链接,并且该应用程序链接被提供给了app-B。应用程序链接使用 Android 项目中 MainActivity.cs 中定义的 Intent Filer 打开应用程序 A。

[Activity(Label = "app-A", LaunchMode = LaunchMode.SingleTask, Icon = "@mipmap/ic_launcher", RoundIcon = "@mipmap/ic_launcher_round", Theme = "@style/MainTheme", MainLauncher = false, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, Exported = true)] [IntentFilter(new[] { Android.Content.Intent.ActionView }, AutoVerify = true, Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable }, DataScheme = "https", DataHost = "my-url")] public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity { ... }
我知道应用程序链接“my-url”会打开应用程序-a,但希望“chrome-custom-tab”仍会在应用程序-A 之上打开。这就是它在使用通用链接的等效配置的 iOS 上的工作方式。

我相信我应该在“my-url”上设置一个意图过滤器,启动一个活动,该活动将启动(或者更确切地说重新打开/切换到)在步骤 1 中打开的“chrome-custom-tab”。但是我不知道如何执行此操作并需要您的帮助:)或者如果您有其他解决方案,请提出。预先感谢。

xamarin.forms xamarin.android chrome-custom-tabs
1个回答
0
投票
你曾经让它工作过吗?我面临着类似的问题,我在 Xamarin 中到处寻找实现丹麦 MitID 的 Hello World 应用程序。任何提示都是非常受欢迎的。

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