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

1 回复

更多关于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);
      }
    });
    

    如果首次登录提示无效参数,可能是由于某些初始化问题。你可以尝试在 onLaunchonShow 生命周期中进行 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>
回到顶部