我已经创建了一个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>
我错过了什么,所以它不是关闭浏览器?
1条答案
按热度按时间wwtsj6pe1#
在github上有一个关于WebAuthenticator.AuthenticateAsync not closing Android browser的问题。
而这个问题在Xamarin.Essential nuget包版本1.6中得到了解决。你可以尝试将你项目中的包更新到最新版本。