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
- Facebook的格式是
- 针对iOS 9及以上版本,还需要在
Info.plist的LSApplicationQueriesSchemes数组里添加以下项:fbauth2twittertwitterauth
- 确认两个SDK都已经正确安装(不管是用CocoaPods还是手动导入),并且项目配置里没有遗漏相关依赖
这样改完之后,Facebook和Twitter的授权回调就能正常工作啦!
内容的提问来源于stack exchange,提问作者sznrbrt
相关产品推荐
相关产品推荐

