WebAuthenticator -> 您必须继承 WebAuthenticatorCallbackActivity 并为其创建一个与您的 callbackUrl 匹配的 IntentFilte

Posted

技术标签:

【中文标题】WebAuthenticator -> 您必须继承 WebAuthenticatorCallbackActivity 并为其创建一个与您的 callbackUrl 匹配的 IntentFilter【英文标题】:WebAuthenticator -> You must subclass the WebAuthenticatorCallbackActivity and create an IntentFilter for it which matches your callbackUrl 【发布时间】:2021-07-13 07:54:14 【问题描述】:

预期行为:应用应打开网站进行登录

实际行为: 遇到错误您必须继承 WebAuthenticatorCallbackActivity 并为其创建一个与您的 callbackUrl 匹配的 IntentFilter。

截图:

错误

子类

【问题讨论】:

您可以尝试覆盖 MainActivity 类中的 OnResume 方法,以回调 Xamarin.Essentials,protected override void OnResume() base.OnResume(); Xamarin.Essentials.Platform.OnResume(); 嗨,已经这样做了,但还是不行。 请检查您的回电网址是否正确? 【参考方案1】:

在 MainActivity.cs 中

[Activity(label="your_app", ....)]
[IntentFilter(new[]  android.Content.Intent.ActionView ,
    Categories = new[]  Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable ,
    DataScheme = "your_app")]

var authResult = await WebAuthenticator.AuthenticateAsync(
        new Uri("your_Auth_URL"),
        new Uri("your_app")); //THIS MUST BE SAME AS YOUR DATASCHEME

var accessToken = authResult?.AccessToken;

来源:https://docs.microsoft.com/en-us/xamarin/essentials/web-authenticator?tabs=android#using-webauthenticator

【讨论】:

【参考方案2】:

您应该将 DataScheme="xamarinessentials" 和 DataHost="ABC" 作为属性写入 IntentFilterAttribute。

【讨论】:

以上是关于WebAuthenticator -> 您必须继承 WebAuthenticatorCallbackActivity 并为其创建一个与您的 callbackUrl 匹配的 IntentFilte的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 水平滚动特定列

DataTable.Select 注入

LeetCode:627.交换工资

自动记录器不可用

627. 变更性别

627. 变更性别