谷歌登录xamarin.forms Android-错误:不允许的用户代理
我正在尝试在我的应用程序中实现Google登录,但我面临不允许的\u useragent错误。通过研究,我相信谷歌不再支持Webview。但是我还没有找到任何合适的方法来解决这个错误。有人知道我怎么解决这个问题吗?下面是我的代码 GoogleLoginRenderer.cs谷歌登录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
[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
~~~~
);