You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native集成Facebook与Twitter授权:AppDelegate.m的handleUrl配置问题

同时集成Facebook和Twitter授权的AppDelegate.m处理方案

嘿,我之前在React Native项目里同时接这俩授权的时候也踩过这个坑!官方各自的指引都是让你直接返回自己的回调处理,但这样肯定只能留一个,另一个就失效了。其实只要把两个回调都处理了就行,具体代码这么改:

首先,确保你已经在AppDelegate.m顶部导入了两个SDK的头文件:

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <TwitterKit/TwitterKit.h>

然后修改openURL方法,同时处理两个平台的回调:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
    // 先处理Facebook的授权回调
    BOOL facebookHandled = [[FBSDKApplicationDelegate sharedInstance] application:app openURL:url options:options];
    // 再处理Twitter的授权回调
    BOOL twitterHandled = [[Twitter sharedInstance] application:app openURL:url options:options];
    
    // 只要其中一个平台处理了这个URL,就返回YES
    return facebookHandled || twitterHandled;
}

额外注意事项

  • 一定要在Info.plist里正确配置两个平台的URL Schemes:
    • Facebook的格式是fb{你的APP_ID},比如fb123456789
    • Twitter的格式是twitterkit-{你的Consumer Key},比如twitterkit-abcdefghijklmnopq
  • 针对iOS 9及以上版本,还需要在Info.plist的LSApplicationQueriesSchemes数组里添加以下项:
    • fbauth2
    • twitter
    • twitterauth
  • 确认两个SDK都已经正确安装(不管是用CocoaPods还是手动导入),并且项目配置里没有遗漏相关依赖

这样改完之后,Facebook和Twitter的授权回调就能正常工作啦!

内容的提问来源于stack exchange,提问作者sznrbrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:27:40