取消按钮在 iOS 的谷歌登录框架中不可见

Posted

技术标签:

【中文标题】取消按钮在 iOS 的谷歌登录框架中不可见【英文标题】:Cancel button not visible in google sign in framework for iOS 【发布时间】:2015-12-03 21:33:56 【问题描述】:

这个问题可能很琐碎,但自从过去 6 个小时以来,这让我很头疼。我已经在我的项目中集成了适用于 ios 的谷歌登录 SDK,除了取消按钮之外,一切似乎都运行良好。 .

当我单击登录屏幕中的 google 按钮时,会出现此屏幕。但是,如果用户决定取消 google 登录,则无法解除此操作。通常取消按钮应该出现在左栏按钮项的位置,但在这种情况下它丢失了。

我在这里做错了什么??

【问题讨论】:

检查它是否重定向到 Safari 那么你必须实现很多代码。如果它重定向到 safari,Apple 也会拒绝 Google Sign In 特色应用。 这是最新的 google 登录 SDK,它不会重定向到 safari。相反,它会在应用程序本身中打开一个这样的屏幕...... 很高兴知道.. Google 也将所有头文件作为开源提供,您可以随时编辑您想要的任何内容。 真的很奇怪,我也有同样的问题:( @GenosseWu :我已经从我的项目中删除了所有 google sdk 文件并再次从头开始集成它们,然后它对我有用.. 【参考方案1】:

您的 AppDelegate 中是否有任何 UIAppearance 配置?也许条形颜色与按钮文本颜色相同。我通过在我的AppDelegate.swift 文件中为UINavigationbar.appearance() 代理公开的大多数相关属性设置全局默认值解决了这个问题(对于ObjC 应该类似)

    UINavigationBar.appearance().barTintColor = UIColor(red:0.00, green:0.42, blue:0.90, alpha:1.0)

【讨论】:

【参考方案2】:

您只会在两种情况下获得取消按钮:

1 - 如果您已经在此屏幕中输入了 google 用户名和密码并移至下一个。

2 - 如果您已安装 google plus 应用并已登录。

在当前情况下,您不会将取消按钮作为 web 视图。 所以解决方案是您需要创建自己的后退按钮。

创建一个条形按钮项并将其分配给navigationItem 的leftBarButtonItem。 将此代码放入viewDidLoad

    UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)];
        [myButton setImage:[UIImage imageNamed:@"CancelImage" forState:UIControlStateNormal];
        [myButton setContentEdgeInsets:UIEdgeInsetsMake(0, -15, 0, 0)];
        [myButton addTarget:self action:@selector(backToHOmePage) forControlEvents:UIControlEventTouchUpInside];
        UIBarButtonItem *customBackBtn = [[UIBarButtonItem alloc] initWithCustomView:myButton];
        self.navigationItem.leftBarButtonItem = customBackBtn;

然后创建backToHomePage方法——

-(void)backToHOmePage

    [self.navigationController popToRootViewControllerAnimated:YES];

【讨论】:

【参考方案3】:

尝试删除GoogleSignIn.frameworkGoogleSignIn.bundle 文件并将它们添加回来。

另外,请确保您已将 GoogleSignIn.bundle 添加到 Xcode 项目的 Copy Bundle Resources 构建阶段(转到 Targets > YourProject > Build Phases > Copy Bundle Resources 并添加 GoogleSignIn.bundle)。

【讨论】:

以上是关于取消按钮在 iOS 的谷歌登录框架中不可见的主要内容,如果未能解决你的问题,请参考以下文章

使用带有反应的谷歌登录按钮

从Play商店下载时,颤动的谷歌登录无法在发布中工作

使用带有反应 2 的谷歌登录按钮

未发布的按钮在我的谷歌播放控制台中被禁用

小米10的谷歌框架打开了没反应

如何处理小部件的谷歌登录