谷歌登录xamarin.forms Android-错误:不允许的用户代理

谷歌登录xamarin.forms Android-错误:不允许的用户代理,xamarin,xamarin.forms,google-oauth,Xamarin,Xamarin.forms,Google Oauth,我正在尝试在我的应用程序中实现Google登录,但我面临不允许的\u useragent错误。通过研究,我相信谷歌不再支持Webview。但是我还没有找到任何合适的方法来解决这个错误。有人知道我怎么解决这个问题吗?下面是我的代码 GoogleLoginRenderer.cs [assembly: ExportRenderer(typeof(Login), typeof(GoogleSignIn2.Droid.GoogleLoginRenderer))] namespace GoogleSignI

我正在尝试在我的应用程序中实现Google登录,但我面临不允许的\u useragent错误。通过研究,我相信谷歌不再支持Webview。但是我还没有找到任何合适的方法来解决这个错误。有人知道我怎么解决这个问题吗?下面是我的代码

GoogleLoginRenderer.cs

[assembly: ExportRenderer(typeof(Login), typeof(GoogleSignIn2.Droid.GoogleLoginRenderer))]
namespace GoogleSignIn2.Droid
{
    public class GoogleLoginRenderer : PageRenderer
    {
        public GoogleLoginRenderer()
        {
            var activity = this.Context as Activity;
            var auth = new OAuth2Authenticator(
                clientId: "",
                clientSecret: "",
                scope: "openid",
                authorizeUrl: new Uri("https://accounts.google.com/o/oauth2/auth"),
                redirectUrl: new Uri("http://www.posworx.co.za/"),
                accessTokenUrl: new Uri("https://accounts.google.com/o/oauth2/token"),
                getUsernameAsync: null
                );

            auth.Completed += async (s, e) =>
            {
                if (e.IsAuthenticated)
                {
                    string emailAddress = string.Empty;
                    var token = e.Account.Properties["access_token"].ToString();
                    var expiresIn = Convert.ToDouble(e.Account.Properties["expires_in"]);
                    var expireDate = DateTime.Now + TimeSpan.FromSeconds(expiresIn);
                    var request = new OAuth2Request("GET", new Uri("https://www.googleapis.com/auth/userinfo"), null, e.Account);
                    var response = await request.GetResponseAsync();

                    var obj = JObject.Parse(response.GetResponseText());
                    var id = obj["id"].ToString().Replace("\"", "");
                    var name = obj["name"].ToString().Replace("\"", "");

                    App.NavigateToVerified();
                }
                else
                {
                    App.InvalidLogin();

                }
            };

            activity.StartActivity(auth.GetUI(activity));


        }
    }
}

isUsingNativeUI
参数设置为
true
(当前默认值为
false

i、 e:


回复:

在设备上,是的,我已经安装了chrome。我正在使用Xamarin.Auth。如何添加Chrome自定义选项卡?谢谢
    //  true    - Native UI
    //            Android - [Chrome] Custom Tabs
    //            iOS - Safari View Controller
    //  false   - embedded WebViews
    //            Android - WebView
    //            iOS - UIWebView or WKWebView    
OAuth2Authenticator auth = new OAuth2Authenticator 
(
    ~~~~
    isUsingNativeUI: true
    ~~~~
);