WebAuthenticator在Xamarin表单中发送意图时未关闭Chrome浏览器

aydmsdu9  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(167)

我已经创建了一个Xamarin表单android应用程序。我正在使用我的Xamarin应用程序分享照片。
我的要求是登录到应用程序时,我分享的东西,第一次使用我的应用程序。
对于登录,我使用WebAuthenticator来支持OAuth2。这工作正常,并重定向到我的应用程序,但谷歌Chrome浏览器仍然在后台打开。它没有关闭。
对于正常的应用程序登录,它关闭浏览器,但如果我通过我的应用程序和登录共享的东西,鲍泽没有关闭。所以看起来像当Intent是SEND时,它永远不会关闭浏览器。
为WebAuthenticator身份验证添加以下代码

var authResult = await WebAuthenticator.AuthenticateAsync(new WebAuthenticatorOptions
            {
                Url = new Uri($"{_baseUrl}"),
                CallbackUrl = new Uri("callback://")
            });

WebAuthenticationCallbackActivity代码如下。

[Activity(NoHistory = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop, Exported = true)]
    [IntentFilter(new[] { Android.Content.Intent.ActionView },
        Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable },      
        DataScheme = "callback")]
    public class WebAuthenticationCallbackActivity : Xamarin.Essentials.WebAuthenticatorCallbackActivity
    {
    }

在Android清单文件中添加以下内容。

<intent>
            <action android:name="android.support.customtabs.action.CustomTabsService" />
        </intent>

我错过了什么,所以它不是关闭浏览器?

wwtsj6pe

wwtsj6pe1#

在github上有一个关于WebAuthenticator.AuthenticateAsync not closing Android browser的问题。
而这个问题在Xamarin.Essential nuget包版本1.6中得到了解决。你可以尝试将你项目中的包更新到最新版本。

相关问题