我正在尝试使用react-native-fbsdk
登录。我遵循了React Native FBSDK中的步骤。运行xcode时,我没有收到任何错误。
当我运行react-native run-ios
时没有错误,甚至可以看到facebook Login Button
,但是当我单击按钮时,它并没有带我到Facebook登录页面。什么都没发生。下面是我的代码:
import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View} from 'react-native';
import { LoginButton, AccessToken } from 'react-native-fbsdk';
export default class App extends Component<Props> {
loginFacebook(){
LoginManager.logInWithReadPermissions(["public_profile"]).then(
function(result) {
if (result.isCancelled) {
console.log("Login cancelled");
} else {
console.log(
"Login success with permissions: " +
result.grantedPermissions.toString()
);
}
},
function(error) {
console.log("Login fail with error: " + error);
}
);
}
render() {
return (
<View style={styles.container}>
<LoginButton
onLoginFinished={
(error, result) => {
if (error) {
console.log("login has error: " + result.error);
} else if (result.isCancelled) {
console.log("login is cancelled.");
} else {
AccessToken.getCurrentAccessToken().then(
(data) => {
console.log(data.accessToken.toString())
}
)
}
}
}
onLogoutFinished={() => console.log("logout.")}/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
});
知道发生了什么吗?
答案 0 :(得分:1)
我知道了。我不知道我浪费了多少时间来解决这个问题!
原来是FacebookSDKs-iOS-4.39.0
的一个错误,我不得不将其降级为FacebookSDKs-iOS-4.38.0
。
From this website我下载了旧版本,并且可以正常工作!
答案 1 :(得分:0)
您能否尝试使用fbsdk中的这段代码,它将一些道具传递给按钮,您可能会忘记这样做:
<LoginButton
onLoginFinished={
(error, result) => {
if (error) {
console.log("login has error: " + result.error);
} else if (result.isCancelled) {
console.log("login is cancelled.");
} else {
AccessToken.getCurrentAccessToken().then(
(data) => {
console.log(data.accessToken.toString())
}
)
}
}
}
onLogoutFinished={() => console.log("logout.")}/>
通过以下代码,您可以尝试以其他方式尝试使用LoginManager: 创建用于Facebook登录的按钮:
<button onclick={this.loginFacebook}> </button>
为Facebook登录创建功能:
loginFacebook(){
LoginManager.logInWithReadPermissions(["public_profile"]).then(
function(result) {
if (result.isCancelled) {
console.log("Login cancelled");
} else {
console.log(
"Login success with permissions: " +
result.grantedPermissions.toString()
);
}
},
function(error) {
console.log("Login fail with error: " + error);
}
);
}
答案 2 :(得分:0)
我通过从终端react-native run-android
运行应用程序来解决此问题
我与以下人员一起工作: “ react-native”:“ 0.60.5”, “ react-native-fbsdk”:“ ^ 1.0.4”