uni-app IOS Facebook登陆问题:首次登陆uni.login提示无效参数,第二次可正常返回,但uni.getUserInfo无响应
uni-app IOS Facebook登陆问题:首次登陆uni.login提示无效参数,第二次可正常返回,但uni.getUserInfo无响应
项目 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | win11 |
HBuilderX类型 | Alpha |
HBuilderX版本号 | 4.17 |
手机系统 | iOS |
手机系统版本号 | iOS 17 |
手机厂商 | 苹果 |
手机机型 | iphone11 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
App下载地址或H5网址 | https://apps.apple.com/tw/app/lendlend/id1523948536 |
示例代码:
uni.login({
provider: 'facebook',
success: function (loginRes) {
console.log(loginRes);
if(loginRes!=null){
uni.showLoading();
setTimeout(function(){
console.log('uni.getUserInfo')
//獲取本機用戶信息
uni.getUserInfo({
provider: 'facebook',
success: function (infoRes) {
console.log(infoRes);
},
fail:function(res){
console.log(res)
},
complete:function(res){
console.log(res)
},
});
},1000)
}
},
fail: function (err) {
// 登录失败
console.log(err);
gb.msg('數據加載失敗');
}
});
操作步骤:
杀掉app进程重启app后,首次登陆uni.login提示无效参数,第二次登陆uni.login可以正常返回,但是uni.getUserInfo无响应
预期结果:
uni.getUserInfo 应该有响应
实际结果:
uni.getUserInfo 无任何响应 success fail complete 均无响应
bug描述:
IOS Facebook登陆 杀掉app进程重启app后,首次登陆uni.login提示无效参数,第二次登陆uni.login可以正常返回,但是uni.getUserInfo无响应
更多关于uni-app IOS Facebook登陆问题:首次登陆uni.login提示无效参数,第二次可正常返回,但uni.getUserInfo无响应的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app IOS Facebook登陆问题:首次登陆uni.login提示无效参数,第二次可正常返回,但uni.getUserInfo无响应的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在使用 uni-app 进行 Facebook 登录时,遇到 uni.login
提示无效参数,或者 uni.getUserInfo
无响应的问题,可能是由于以下几种原因导致的。以下是一些可能的解决方案和排查步骤:
1. 检查 Facebook 开发者平台配置
- App ID 和 App Secret:确保你在 Facebook 开发者平台上正确配置了 App ID 和 App Secret,并且在 uni-app 项目中正确填写了这些信息。
- OAuth 重定向 URI:确保在 Facebook 开发者平台中配置了正确的 OAuth 重定向 URI。通常,Facebook 登录需要一个回调 URL,确保它在 Facebook 开发者平台中被正确配置。
- 平台设置:确保你已经为 iOS 平台正确配置了 Facebook 登录,包括 Bundle ID 等信息。
2. 检查 uni-app 配置
- manifest.json 配置:在
manifest.json
文件中,确保你已经正确配置了 Facebook 登录的相关信息。例如:"oauth": { "facebook": { "appid": "your-facebook-app-id", "appsecret": "your-facebook-app-secret" } }
3. 检查 uni.login 和 uni.getUserInfo 的使用
-
uni.login:确保你在调用
uni.login
时传递了正确的参数。例如:uni.login({ provider: 'facebook', success: function (loginRes) { console.log('Login success:', loginRes); }, fail: function (err) { console.log('Login failed:', err); } });
如果首次登录提示无效参数,可能是由于某些初始化问题。你可以尝试在
onLaunch
或onShow
生命周期中进行 Facebook 登录的初始化。 -
uni.getUserInfo:在
uni.login
成功后,确保你调用uni.getUserInfo
时也传递了正确的参数。例如:uni.getUserInfo({ provider: 'facebook', success: function (infoRes) { console.log('User info:', infoRes); }, fail: function (err) { console.log('Get user info failed:', err); } });
4. 检查权限和授权
- 权限范围:确保你请求了正确的权限范围。Facebook 登录可能需要一些额外的权限来获取用户信息。你可以在
uni.login
中指定scope
参数,例如:uni.login({ provider: 'facebook', scope: 'email,public_profile', success: function (loginRes) { console.log('Login success:', loginRes); }, fail: function (err) { console.log('Login failed:', err); } });
5. 检查 iOS 平台配置
- Info.plist 配置:在 iOS 平台上,确保你在
Info.plist
文件中正确配置了 Facebook 登录的相关信息。例如:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb{your-facebook-app-id}</string> </array> </dict> </array> <key>FacebookAppID</key> <string>{your-facebook-app-id}</string> <key>FacebookDisplayName</key> <string>{your-app-name}</string>