2016-05-14 13 views
12

Ho provato a seguire lo starter tutorial impostando un nuovo React Native Project per iOS. Ma il pulsante di login non sembra funzionare. Qualsiasi aiuto è apprezzato.Reagire nativo Facebook Login utilizzando fbsdk ufficiale

Ecco l'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); 

E lo screenshot dell'emulatore: enter code here

+0

Il problema con la funzionalità o lo stile? –

+1

Funzionalità: fare clic sul pulsante non fa nulla. L'avviso di deprecazione potrebbe avere qualcosa a che fare con questo? – philoniare

risposta

6

è necessario collegare progetto iOS del sdk nel progetto della tua applicazione.

Se si utilizza react-native-sdk v0.2.0 +, rnpm si prenderà cura di questo passaggio e sarà possibile seguire i suggerimenti here per completare l'installazione.

Se si utilizza la versione precedente, è necessario collegare react-native-fbsdkxxx.xcodeproj in YourApp.xcodeproj. Seguire i passaggi di collegamento manuale in https://facebook.github.io/react-native/docs/linking-libraries-ios.html

+0

Vedo, grazie. Ci proverò più tardi. Solo curioso, come mai Android funziona bene senza caricare una libreria manualmente come iOS? – philoniare

+1

Poiché il progetto Android utilizza gradle. Estrae la libreria dal server e imposta le cose automaticamente. – dzhuowen

+0

cool, grazie per la risposta di follow-up :) – philoniare