在 iOS 中集成 Google 和 Facebook 登录 - AppDelegate openURL

2024-01-01

我正在尝试将 facebook 和 google 登录集成到我的应用程序中,但遇到了问题:两者都需要将以下内容添加到 Appdelegate 中的 openURL 方法中:

return [GIDSignIn sharedInstance] handleURL:url
                           sourceApplication:sourceApplication
                                         annotation:annotation]];

return [FBSDKApplicationDelegate sharedInstance] application:application
                                                       openURL:url
                                             sourceApplication:sourceApplication
                                                    annotation:annotation
         ]]

无论如何,有没有办法让这两者一起正常工作。我在网上查过,但答案很模糊,无法提供很好的解释

Solution

添加了以下内容,这对我来说很有效(从 iOS 9 开始):

return [[GIDSignIn sharedInstance] handleURL:url sourceApplication:sourceApplication annotation:annotation] || [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation ];

使用以下代码...

- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplicationannotation:(id)annotation
    {
      if ([FBAppCall handleOpenURL:url sourceApplication:sourceApplication])
        return [FBSDKApplicationDelegate sharedInstance] application:application
                                                       openURL:url
                                             sourceApplication:sourceApplication
                                                    annotation:annotation
         ]];
      else

       return [GIDSignIn sharedInstance] handleURL:url
                           sourceApplication:sourceApplication
                                         annotation:annotation]];
    }

另一个答案..

- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplicationannotation:(id)annotation
{

     NSString *stringURL = [ url absoluteString];
    if([stringURL containsString:@"fb"])
    {


    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];
    }
    else
    {
        return [GPPURLHandler handleURL:url
                      sourceApplication:sourceApplication
                             annotation:annotation];

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 中集成 Google 和 Facebook 登录 - AppDelegate openURL 的相关文章

  • 使用 NSURLSessionDataTask 显示文件下载进度

    我想显示特定文件的文件下载进度 收到了多少字节 它与 NSURLSessionDownloadTask 配合得很好 我的问题是我想用 NSURLSessionDataTask 实现同样的效果 以下是将文件接收到 NSData 并写入文档文件
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • iOS Storyboards 我应该使用它们吗? [复制]

    这个问题在这里已经有答案了 我是 iOS 开发新手 尚未创建应用程序 但我向我的朋友寻求建议 他在市场上拥有非常高评价的应用程序 他说不要使用故事板 尽管我很想听取他的建议 但它们似乎确实很有帮助 这是否会在将来给我的应用程序带来问题 我有
  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • 在 Flutter 中显示 iOS 的 PDF 内联文件

    我正在 flutter 中专门为 iOS 开发一个应用程序 现阶段 我需要向其中添加 PDF 文件 问题是 flutter 没有原生的方式来显示 PDF 文件 据我研究 由此tread https github com flutter fl
  • 将带有地理位置数据的照片保存到照片库 Swift 3

    如何使用地理位置元数据将照片保存到照片库 我已请求 并允许 应用程序访问用户位置 private func allowAccessToUserLocation locationManager CLLocationManager locati
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • iOS UIButton 带有圆角和背景 bug

    我发现圆形 UIButton 存在一个奇怪的问题 这是我创建此按钮的代码块 let roundedButton UIButton type System roundedButton frame CGRectMake 100 100 100
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • PrepareForSegue之谜

    我在两个不同的 VC 中有一个prepareForSegue 方法 一个使用一个if声明 而另一个旨在使用switch 除了名称之外 代码几乎相同 这个效果很好 void prepareForSegue UIStoryboardSegue
  • 使用 UIImageJPEGRepresentation 时,compressionQuality 应该是多少?

    我想对用户库中的照片应用滤镜 然后将其写回磁盘 我在用着UIImageJPEGRepresentation 该函数需要一个UIImage and a compressionQuality值介于 0 0 和 1 0 之间 因为我想保留原始质量
  • 如何将音乐从我的应用程序切换到 iPod

    我在用MusicPlayerController我的应用程序中的对象来播放音乐 我知道当 iPhone ipod 应用程序终止时 可以继续播放我的应用程序音乐 我该怎么做 这涉及到一些事情 您必须在两种音乐播放器之间进行选择 应用程序音乐播
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 我什么时候应该对 IBOutlet 使用弱或强限定符? [复制]

    这个问题在这里已经有答案了 可能的重复 ARC 下 IBOutlets 应该强还是弱 https stackoverflow com questions 7678469 should iboutlets be strong or weak
  • 如何处理 Xcode“嵌入应用程序扩展”构建阶段

    通过添加新目标创建 共享扩展 时 Xcode 在应用程序目标设置的应用程序 构建阶段 选项卡中添加名为 嵌入应用程序扩展 的构建阶段 可以删除此阶段 但如果您尝试通过按左上角的 来添加它 您会发现可用选项中未列出 嵌入应用程序扩展 为什么会
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS
  • 我应该在哪个方法中设置 UITextField 的委托?

    在 viewDidLoad 或 init 方法中设置 UITextField 的委托是一个好习惯吗 我尝试在 init 方法中将委托设置为 self 但它没有调用相应的委托方法 当我将代码移动到 viewDidLoad 中时 它注册为将 s
  • NSPredicate 的 onFormat 字符串

    我想用 id 键对数据进行排序 我如何理解格式字符串的用途NSPredicate格式 我有一个100号的帖子 我的代码 let objectIDs posts map 0 id let predicate NSPredicate forma

随机推荐

  • 重命名所有列名称以用于大查询中的连接目的

    我需要连接两个具有完全相同列名的表 我需要在加入步骤之前重命名列 每个表包含 100 多列 我想知道是否有任何方法可以添加前缀或后缀来重命名所有列 而不是手动更改它们AS 我在 BigQuery 上使用标准 SQL 我在下面举了一个例子来说
  • 如何对集合中所有对象的属性执行 .Max() 并返回具有最大值的对象[重复]

    这个问题在这里已经有答案了 我有一个具有两个 int 属性的对象列表 该列表是另一个 linq 查询的输出 物体 public class DimensionPair public int Height get set public int
  • 为什么c#不能计算数学函数的精确值

    为什么c 不能做任何精确的操作 Math Pow Math Sqrt 2 0 2 2 0000000000000004 我知道双打是如何工作的 我知道舍入误差来自哪里 我知道它是almost正确的值 我知道你不能在有限的双精度数中存储无限的
  • 如何配置 HTML Purifier 以允许图像 src 的数据 URI?

    如何允许图像标签的 src 属性使用 Base64 数据 我看到这样的代码 config gt set URI AllowedSchemes array http gt true https gt true mailto gt true f
  • Windows批处理脚本取消隐藏被病毒隐藏的文件

    由于我看到很多人的文件被闪存驱动器病毒隐藏 因此我为他们提供了一个 Windows 命令行 使用attrib 或使用Linux 来解决当受感染的文件被删除并且它们的文件仍然 丢失 时的问题 删除文件和文件夹属性系统 隐藏和归档的命令 并非真
  • 当父线程退出时,Java 守护线程会自动终止吗?

    如果一个线程创建了一个守护线程 我可以相信当父线程退出run方法时 子线程也会终止吗 否 线程是独立的 一个线程 拥有 另一个线程并强制终止是没有意义的 如果你是really询问当应用程序中的所有非守护线程都已死亡时 您是否可以依赖进程死亡
  • 为 api 26 设置 Gradle (Android)

    由于我已将 Nexus 5x 升级到 Android O DP3 我无法测试我的应用程序 我收到错误消息是因为没有配置我的 Gradle 文件以使用新的 API 级别 26 所以我更改了它和依赖项 但我在所有支持库上不断收到错误 例如 Fa
  • Google Service Plugin 3.2.0 导致 Gradle 构建失败

    我正在尝试更新 Google 服务插件 但在 Gradle 同步期间收到错误 项目刷新失败 错误 未找到匹配项 版本 3 1 1 一切正常 但一旦我将 build gradle 更新为 classpath com google gms go
  • Angular 1.5 & ES6 - 依赖注入

    我是 Angular 新手 我正在尝试使用 ES6 我的依赖注入有问题 我无法让它工作 我的index js import index state css import angular from angular import angular
  • 无法更改 Visual Studio 2017 中程序集的默认语言

    我的应用程序支持三种语言 en es 和 fr 当我构建我的 干净的 从模板 UWP 应用程序时 我收到消息 warning PRI257 0xdef00522 Resources found for language s en es fr
  • 如何按位和 CFBitVector

    我有两个实例CFMutableBitVector 像这样 CFBitVectorRef ref1 ref2 我怎样才能对这些家伙进行按位运算 目前我只关心and 但显然xor or等了解一下会很有用 显然 我可以迭代向量中的位 但当我在位级
  • Noob to PowerShell,复制文件夹内的文件

    抱歉 如果这是一个非常简单的过程 我有一个文件夹结构 根级别有大约 4 000 个目录 空 另一个位置有另一组包含数据的文件夹 我只想将 location2 中的文件夹中的文件复制到 location1 中的文件夹 即 FolderABC1
  • 以百分比形式显示会话的 Oracle CPU 使用率

    以下脚本返回活动会话的 CPU 使用情况 结果显示 CPU 使用率 以秒为单位 我需要的是相同的报告 其中包含 CPU 使用率百分比 做这个的最好方式是什么 Show CPU Usage for Active Sessions SET PA
  • 以编程方式转储调用堆栈

    寻找一种方法 在遇到一段代码时以编程方式转储调用堆栈和 net Win Forms 应用程序 这是我以前从未遇到过的东西 但会节省我一些调试时间 更新 忘记添加 这会给应用程序增加多少开销 即它会大大减慢应用程序的速度 System Env
  • 设置 WH_KEYBOARD 挂钩失败并出现错误 1428

    这是我的 C 代码 include
  • 如何获取显示引用的 C# 库的 XML 文档?

    假设您有一个包含多个函数的 C 库 所有函数都使用通常的文档记录
  • ghci 未从文件加载函数

    在 test hs 中 我有 doubleMe x x x 在 ghci 中 我输入 Prelude gt l test 1 of 1 Compiling Main test hs interpreted Ok modules loaded
  • 预处理 SHA256 Python 实现

    我正在维基百科上完成 SHA256 的实现 但遇到了困难 我刚刚尝试编写消息预处理的代码 最终消息的长度是 504 位 而不是所需的 512 位 维基百科 SHA256 http en wikipedia org wiki SHA 2 预处
  • 从 Google Play 删除未发布的应用

    我在我的 Google Play 帐户中创建了一个新应用程序 我没有发表还没完成 它刚刚准备好发布 由于它尚未发布 有什么方法可以将其从我的帐户中永久删除吗 我找不到任何删除或删除按钮 我读here https stackoverflow
  • 在 iOS 中集成 Google 和 Facebook 登录 - AppDelegate openURL

    我正在尝试将 facebook 和 google 登录集成到我的应用程序中 但遇到了问题 两者都需要将以下内容添加到 Appdelegate 中的 openURL 方法中 return GIDSignIn sharedInstance ha