要解决Expo v33托管应用中的Facebook和Google登录无法正常工作的问题,可以尝试以下解决方法:
app.json
文件中正确配置了Facebook和Google的应用ID和密钥。示例代码如下:{
"expo": {
"facebookScheme": "fb[你的应用ID]",
"facebookAppId": "[你的应用ID]",
"facebookDisplayName": "[你的应用名称]",
"googleSignIn": {
"reservedClientId": "[你的客户端ID]"
}
}
}
expo-google-app-auth
和expo-facebook
库。可以使用以下命令进行安装:expo install expo-google-app-auth expo-facebook
使用Facebook登录:
import * as Facebook from 'expo-facebook';
// ...
const loginWithFacebook = async () => {
try {
await Facebook.initializeAsync('[你的应用ID]');
const { type, token } = await Facebook.logInWithReadPermissionsAsync({
permissions: ['public_profile'],
});
if (type === 'success') {
// 使用token进行登录逻辑处理
} else {
// 取消登录或登录失败处理
}
} catch (error) {
console.log('登录出错:', error);
}
};
// ...
使用Google登录:
import * as Google from 'expo-google-app-auth';
// ...
const loginWithGoogle = async () => {
try {
const result = await Google.logInAsync({
androidClientId: '[你的Android客户端ID]',
iosClientId: '[你的iOS客户端ID]',
scopes: ['profile', 'email'],
});
if (result.type === 'success') {
// 使用result.accessToken进行登录逻辑处理
} else {
// 取消登录或登录失败处理
}
} catch (error) {
console.log('登录出错:', error);
}
};
// ...
请根据自己的实际情况替换示例代码中的占位符,并注意在Facebook和Google开发者控制台正确配置应用的ID和密钥。同时,确保iOS设备已经安装了Facebook和Google的相关应用。