目前我正在开发Xamarin Forms应用程序,我添加了Google身份验证。 这是我在PCL的代码:
var authenticator = new OAuth2Authenticator( clientId, null, Constants.Scope, new Uri(Constants.AuthorizeUrl), new Uri(redirectUri), new Uri(Constants.AccessTokenUrl), null, true); authenticator.Completed += this.OnAuthCompleted; authenticator.Error += this.OnAuthError; AuthenticationState.Authenticator = authenticator; var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter(); presenter.Login(authenticator);
我使用的是Xamarin.Auth
的最新版本,1.5.0.3
这是我收到的:Screenshot
我浏览了很多文章和代码示例,但看起来谷歌可能再次更新了他们的身份验证。 Link 1,Link 2,Link 3,Link 4。 Xamarin.Forms示例的官方页面上的事件无效且无效{。{3}}。
我检查了几个代码示例,但再次没有成功,Link 5和多个样本Sample 1。我下载源代码并尝试使用它,期望它正常工作,但它们也失败了。
您是否有解决此问题或任何文章的解决方案,这是最新的并且您知道它正在运行。代码示例也很棒。
提前致谢!
答案 0 :(得分:3)
在Android上,由于安全原因,Google要求现在使用Chrome Custom Tabs
而不是WebView
。
如果您运行的是未安装Chrome的模拟器(或设备)(从OEM或通过Play商店预安装),则Xamarin.Auth
将默认使用WebView
。谷歌将在世界某些地区接受这一点(即设备OEM可能无法预装Chrome的中国),否则Google将通过WebView
错误拒绝disallowed_useragent
个客户。
如果您正在运行GenyMotion模拟器,请通过Play商店安装Chrome。如果您没有安装Play商店,请安装GApps(通过http://opengapps.org)