React Native Facebook使用官方fbsdk登录

问题描述:

我试着通过为iOS设置一个新的React Native Project来尝试启动tutorial。但登录按钮似乎没有工作。任何帮助表示赞赏。React Native Facebook使用官方fbsdk登录

这里的index.ios.js:

import React, { Component } from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    View 
} from 'react-native'; 

const FBSDK = require('react-native-fbsdk'); 
const { 
    LoginButton 
} = FBSDK; 

var Login = React.createClass({ 
    render: function() { 
    return (
     <View> 
     <LoginButton 
      publishPermissions={["publish_actions"]} 
      onLoginFinished={ 
      (error, result) => { 
       if (error) { 
       alert("login has error: " + result.error); 
       } else if (result.isCancelled) { 
       alert("login is cancelled."); 
       } else { 
       alert("login has finished with permissions: " + result.grantedPermissions) 
       } 
      } 
      } 
      onLogoutFinished={() => alert("logout.")}/> 
     </View> 
    ); 
    } 
}); 

class AwesomeProject extends Component { 
    render() { 
    return (
     <View style={styles.container}> 
     <Text> 
      Login to Facebook 
     </Text> 
     <Login /> 
     </View> 
    ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: '#F5FCFF', 
    }, 
    shareText: { 
    fontSize: 20, 
    margin: 10, 
    } 
}); 

AppRegistry.registerComponent('AwesomeProject',() => AwesomeProject); 

和仿真器的截图: enter code here

+0

问题是功能还是样式? –

+1

功能:点击按钮不会做任何事情。贬低警告是否与它有关? – philoniare

您需要将SDK的iOS项目中应用的项目联系起来。

如果您使用的是react-native-sdk v0.2.0 +,则rnpm将负责此步骤,您可以按照提示here完成设置。

如果您使用的是旧版本,则需要在YourApp.xcodeproj中链接react-native-fbsdkxxx.xcodeproj。按照手册中的链接步骤操作https://facebook.github.io/react-native/docs/linking-libraries-ios.html

+0

我明白了,谢谢。我会在稍后尝试。只是好奇,如何在没有手动加载类似iOS的库的情况下正常工作? – philoniare

+1

因为Android项目使用gradle。它从服务器拉库,并自动为你设置的东西。 – dzhuowen

+0

很酷,感谢后续回答:) – philoniare