发布
社区首页 >问答首页 >使ReactNative FacebookSDK工作

使ReactNative FacebookSDK工作
EN

Stack Overflow用户
提问于 2016-04-28 02:33:04
回答 1查看 1.6K关注 0票数 0

我正在尝试让FBSDK在一个iOS ReactNative项目中运行。

react-native init AwesomeProject以获得一个全新的项目,遵循github上的响应本机FBSDK指令,在main.m中得到一个错误

代码语言:javascript
代码运行次数:0
复制
thread 1:signal SIGABRT

稍微谷歌一下,我就可以看到这里,然后是这里,它让我在info.plist上添加了一个LSApplicationQueriesSchemes键。解决那个问题。

然后,我遵循Facebook应用程序安装指南,它让我向我的info.plist`添加了一个NSAppTransportSecurity键。但是应用程序无法连接到开发服务器。

再谷歌一下,我发现此页说我不需要NSAppTransportSecurity键,所以我把它拿出来,然后应用程序就运行了。问题解决了。

回到响应本机FBSDK github页面中,我在它们的用法部分获得了第一个示例: LoginButton。逐字复制到我的应用程序中。它在跑。我点击它。还有..。

代码语言:javascript
代码运行次数:0
复制
thread 1:signal SIGABRT

啊!

有人成功了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-28 17:42:20

我有过!安装SDK后,需要确保所有配置都是属性集。您还需要在AppDelegate中导入sdk。

以下是来自我的info.plist的相关信息。

代码语言:javascript
代码运行次数:0
复制
<key>CFBundleURLTypes</key>
  <array>
    <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fb12345678910</string>
      </array>
    </dict>
  </array>
  <key>FacebookAppID</key>
  <string>12345678910</string>
  <key>FacebookDisplayName</key>
  <string>My Awesome App</string>


  <key>NSAppTransportSecurity</key>
  <dict>
    <key>NSExceptionDomains</key>
    <dict>
      <key>facebook.com</key>
      <dict>
        <key>NSIncludesSubdomains</key> <true/>
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
      </dict>
      <key>fbcdn.net</key>
      <dict>
        <key>NSIncludesSubdomains</key> <true/>
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>  <false/>
      </dict>
      <key>akamaihd.net</key>
      <dict>
        <key>NSIncludesSubdomains</key> <true/>
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <false/>
      </dict>
      <key>localhost</key>
      <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/>
      </dict>
      <key>api.mydomain.com</key>
      <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/>
      </dict>
    </dict>
  </dict>


  <key>LSApplicationQueriesSchemes</key>
  <array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
  </array>

有三节:

  1. 您需要定义应用程序Id和显示名称。
  2. 您需要定义您的应用程序将访问的域,显然facebook的域,akamai和您自己的域,我已经将localhost包括在列表中。
  3. 最后,您需要包括查询方案。

这是我的AppDelegate.m文件。

代码语言:javascript
代码运行次数:0
复制
```javascript

#导入"RCTRootView.h“

#import

@implementation AppDelegate

  • (UIApplication)应用程序didFinishLaunchingWithOptions:(NSDictionary )launchOptions { NSURL *jsCodeLocation;

/**

  • Facebook
  • **/ [FBSDKApplicationDelegate sharedInstance应用程序:应用程序 最后完成launchOptions:launchOptions];

/**

  • 加载JavaScript代码-取消注释您想要的。
  • 备选案文1
  • 从开发服务器加载。从存储库根启动服务器:
  • $ npm启动
  • 要在设备上运行,请将localhost更改为计算机的IP地址。
  • (您可以通过在终端中键入ifconfig并选择
  • ( inet值在en0:下),并确保计算机和iOS设备
  • 在同一个Wi网络上。 */

URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true";= NSURL jsCodeLocation

/**

  • 备选案文2
  • 从磁盘上的预捆绑文件加载。静态包是自动的。
  • 由"Bundle React本机代码和图像“生成步骤生成
  • 在实际设备上运行项目或在
  • 模拟器在“发布”构建配置。 */

// jsCodeLocation = [NSBundle mainBundle URLForResource:@main“main”main:@“jsbundle”];

RCTRootView *rootView = [RCTRootView alloc initWithBundleURL:jsCodeLocation

代码语言:javascript
代码运行次数:0
复制
                                                  moduleName:@"MyAwesomeApp"
代码语言:javascript
代码运行次数:0
复制
                                           initialProperties:nil
代码语言:javascript
代码运行次数:0
复制
                                               launchOptions:launchOptions];

self.window = [UIWindow alloc initWithFrame:UIScreen mainScreen.bounds];

UIViewController *rootViewController = UIViewController;

rootViewController.view = rootView;

self.window.rootViewController = rootViewController;

self.window makeKeyAndVisible;

回答“是”;

}

/**

  • Facebook
  • **/
  • (void)applicationDidBecomeActive:(UIApplication *)应用程序{ FBSDKAppEvents activateApp; }
  • (BOOL)申请:(UIApplication)申请 openURL:(NSURL )url sourceApplication:(NSString *)sourceApplication 注释:(Id)注释{ 返回[FBSDKApplicationDelegate sharedInstance应用程序:应用程序 openURL:url 资源应用:资源应用 注释:注释]; }

@end

代码语言:javascript
代码运行次数:0
复制

有了这些配置,我就可以连接到我的服务器,登录用户等。

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36904245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档