2

嗨,我正在尝试为 facebook 登录测试 react native facebook sdk。使用下面的代码,我能够成功提供我的凭据并登录到应用程序。我的问题是我没有收到警报消息或 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>

4

3 回答 3

3

我发现您需要始终使用命令重新构建您的应用程序react-native run-androidreact-native run-ios更改才能实际生效。

于 2019-10-05T19:48:10.377 回答
2

在经历了这个之后我发现了我的问题。https://github.com/facebook/react-native-fbsdk在我的 MainActivity 类中,我使用本地启动的 CallbackManager 实例。参考 MainApplication 类的 CallbackManager 实例后,触发了 onLoginFinished 函数!!:)

请参考:https ://reactnativecode.com/facebook-login-integration/

于 2016-11-18T09:06:53.190 回答
1

我认为您的调试器有问题,但我使用的代码运行良好。你能检查一下 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”)}
/>
于 2016-11-17T14:33:44.173 回答