【发布时间】:2017-09-16 23:14:59
【问题描述】:
我正在开发 Xamarin Forms PCL 应用程序,我正在尝试将 Google 身份验证与 Xamarin.Auth 组件集成。但不幸的是,我在尝试向 Google 进行身份验证时遇到 disallowed_useragent 错误。使用 Facebook 和其他社交媒体身份验证一切正常。
任何帮助都会让我继续前进。
【问题讨论】:
标签: xamarin.forms google-authentication
我正在开发 Xamarin Forms PCL 应用程序,我正在尝试将 Google 身份验证与 Xamarin.Auth 组件集成。但不幸的是,我在尝试向 Google 进行身份验证时遇到 disallowed_useragent 错误。使用 Facebook 和其他社交媒体身份验证一切正常。
任何帮助都会让我继续前进。
【问题讨论】:
标签: xamarin.forms google-authentication
出现问题是因为 google 最近更改了政策,不允许 WebViews(和其他嵌入式浏览器)成为授权过程的一部分。应该改用新的原生浏览器:Android 上的 CustomTabs 和 iOS 上的 Safari 浏览器(抱歉,我忘记了名字)。
解决问题:
1. 将 Xamarin.Auth 更新到最新版本
2. 安装 Xamarin.Support.CustomTabs NuGet 包(我认为它会自行安装最新的 Auth 版本)
3. 在Authenticator 构造函数中,为IsUsingNativeUI 属性添加一个true 值
4.调用GetUI()函数并将其值转换为CustomTabsIntent.Builder
5. 使用Authenticator.GetInitialUrlAsync() 函数调用builder.Build().LaunchUrl()
希望对您有所帮助!
【讨论】:
disallowed_useragent 表示(很可能)应用正在使用自 2017 年 4 月 20 日起禁止使用的嵌入式 WebView。
Xamarin.Auth 自 2017-03-2x nuget 版本 v.1.4.x 起支持 CustomTabs 和 SafariView 控制器。 1.5.0 版集成了表单支持。
【讨论】: