了解' onLoginFinished'功能于' LoginButton'反应原生fbsdk的组成部分

时间:2016-11-17 09:28:02

标签: react-native react-native-fbsdk

您好我正在尝试测试本地facebook sdk以进行facebook登录。使用下面的代码,我能够成功提供我的凭据并登录到应用程序。我的问题是我没有收到警报消息或console.log输出。即使调试器语句似乎也不起作用。有人可以帮我弄清楚如何正确处理onLoginFinished事件。



                          <View>
                       <LoginButton
                        //  publishPermissions={["none"]}
                          readPermissions = {["public_profile"]}
                           onLoginFinished={
                             (error, result) => {
                               debugger;
                               if (error) {
                                 alert("login has error: " + result.error);
                                 console.log("Error occured");
                               } else if (result.isCancelled) {
                                 alert("login is cancelled.");
                                 console.log("Login canceled");
                               } else {
                                 // I don't see this alert or console.log anywhere     
                                 alert("Login success");
                                 console.log("Login Success");
                               } // end else
                             }
                        }

                         onLogoutFinished={() => { alert("User logged out");}}

                         />
                       </View>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

我发现,您需要始终使用命令react-native run-androidreact-native run-ios重新构建应用程序,以使更改真正生效。

答案 1 :(得分:0)

我认为您的调试器有问题,但我使用此代码工作正常。你可以检查onLoginFinished方法是否被调用。

<LoginButton 
     publishPermissions={[“publish_actions”]}
     onLoginFinished={
       (error, result) => {
         (error) {
             alert(“Login failed with error: “ + result.error);
         } else if (result.isCancelled) {
             alert(“Login was cancelled”);
         } else {
             alert(“Login was successful with permissions: “ 
                 + result.grantedPermissions)
         }
      }
    }
    onLogoutFinished={() => alert(“User logged out”)}
/>

答案 2 :(得分:0)

我在完成此操作后发现了我的问题。https://github.com/facebook/react-native-fbsdk在我的MainActivity类中,我在本地启动了CallbackManager实例。在引用MainApplication类的CallbackManager实例后,onLoginFinished函数被触发!! :)