我正在我的应用中实施Google身份验证。我已经在登录过程中工作,但由于某种原因Google按钮无法正常渲染。缺少文字和图标。
以下是iOS的自定义渲染器代码:
using System;
using Google.SignIn;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
using APP.iOS.Renderers;
using APP.View.Session;
using UIKit;
[assembly: ExportRenderer (typeof(GoogleLoginButton), typeof(GoogleLoginButtonRenderer))]
namespace APP.iOS.Renderers
{
public class GoogleLoginButtonRenderer : ViewRenderer<Button, SignInButton>
{
protected override void OnElementChanged (ElementChangedEventArgs<Button> e)
{
base.OnElementChanged (e);
var loginButton = new SignInButton ();
if (e.NewElement != null)
SetNativeControl (loginButton);
}
}
}
和我的PCL占位符文件:
using System;
using Xamarin.Forms;
namespace APP.View.Session
{
/// <summary>
/// Empty Implementation of GoogleLoginButton, will be implemented in Platform libraries.
/// </summary>
public class GoogleLoginButton : Xamarin.Forms.View
{
public GoogleLoginButton ()
{
}
}
}
以下是下面的输出。您可以看到Facebook按钮呈现正常,但由于某种原因,Google按钮没有。他们使用相同的渲染器但是类型不同。
。
我尝试过从Xamarin.Forms.View继承而不是.Button,但它没有效果。也没有改变色调。据我所知,渲染逻辑的某些组件与Xamarin Forms不兼容,但我不认为源代码可以深入挖掘。
我正在继续滚动我自己的按钮并直接调用SignInUser()
方法,但我很好奇是否有任何快速解决方法。
版本和内容: