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的主要内容,如果未能解决你的问题,请参考以下文章