2016-05-14 8 views
12

Ich habe versucht, dem Starter tutorial zu folgen, indem ich ein neues React Native Project für iOS eingerichtet habe. Aber der Login-Button scheint nicht zu funktionieren. Jede Hilfe wird geschätzt.Native Facebook-Anmeldung mit offiziellem fbsdk reaktivieren

Hier ist die 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); 

Und der Screenshot des Emulators: enter code here

+0

Ist das Problem mit der Funktionalität oder dem Styling? –

+1

Funktionalität: Klicken auf den Button macht nichts. Könnte die Verwarnungswarnung etwas damit zu tun haben? – philoniare

Antwort

6

Sie benötigen das SDK iOS-Projekt in Ihrer App-Projekt zu verknüpfen.

Wenn Sie reactive-native-sdk v0.2.0 + verwenden, wird sich rnpm um diesen Schritt kümmern und Sie können den Hinweisen here folgen, um die Einrichtung abzuschließen.

Wenn Sie die ältere Version verwenden, müssen Sie react-native-fbsdkxxx.xcodeproj in YourApp.xcodeproj verknüpfen. Befolgen Sie die Schritte zur manuellen Verknüpfung in https://facebook.github.io/react-native/docs/linking-libraries-ios.html

+0

Ich sehe, danke. Ich werde es später ausprobieren. Nur neugierig, wie funktioniert Android gut, ohne eine Bibliothek manuell wie iOS zu laden? – philoniare

+1

Weil das Android-Projekt grandle verwendet. Es zieht die Bibliothek vom Server und richtet die Dinge automatisch für Sie ein. – dzhuowen

+0

cool, danke für die Antwort :) – philoniare