uni-app 微信授权登录没有回调

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 微信授权登录没有回调

开发环境 版本号 项目创建方式
Windows Windows 11 HBuilderX

产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.96
手机系统:iOS
手机系统版本号:iOS 17
手机厂商:苹果
手机机型:iPhone 13
页面类型:vue
vue版本:vue2
打包方式:云端

示例代码:

···uni.login({
provider: 'weixin',   // 微信登录
onlyAuthorize: true,   // 微信登录仅请求授权认证
success: loginRes => {
console.log("App微信获取用户信息成功", loginRes);
// 获取用户信息
uni.getUserInfo({
provider: 'weixin',
success: infoRes => {
console.log(infoRes);
// this.wechatUserInfo = infoRes.userInfo
this.bindWechat(infoRes.userInfo)
},
fail: err => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: err
})
}
})
},
fail: res => {
console.log("App微信获取用户信息失败", res);
uni.showToast({
icon: 'none',
// title: res.errMsg
title: '微信绑定失败'
})
}
···
`

19 回复

打自定义基座了么,用hello uniapp试下


是自定义基座,android是没有问题的,ios不执行,也没有回调

回复 青鹧: uni.getProvider 你调用这个api了么 提供一个示例吧 这边测试没问题

回复 DCloud_iOS_WZT: uni.getProvider调用了的,支持微信登录的

回复 DCloud_iOS_WZT: 示例应该怎么提供呀?

回复 DCloud_iOS_WZT: 还在吗

回复 青鹧: 上传附件

回复 DCloud_iOS_WZT:代码用的就是官网的示例代码,android没有问题,ios是需要特殊配置吗

回复 DCloud_iOS_WZT: 附件上传了,麻烦您看一眼

回复 DCloud_iOS_WZT: 顺便想问您一下,这个微信授权过后,就不会在跳转微信弹出授权弹框了,如果想每次都跳转的话,应该怎么写呀

通用链接没配?

回复 DCloud_iOS_WZT: 没有,那个需要配吗

回复 青鹧: 必须配

回复 DCloud_iOS_WZT: 好的谢谢您

回复 DCloud_iOS_WZT: 顺便想问您一下,这个微信授权过后,就不会在跳转微信弹出授权弹框了,如果想每次都想显示授权弹框的话,应该怎么写呀

回复 青鹧: 只授权一次,这个是微信SDK的策略 你可以去微信SDK的官方论坛查一查

回复 DCloud_iOS_WZT: 好的谢谢

在使用 UniApp 进行微信授权登录时,如果没有回调,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:


1. 检查微信开放平台配置

  • 确保在微信开放平台上正确配置了应用的 AppIDAppSecret
  • 检查 授权回调域名 是否配置正确。微信授权登录需要一个合法的回调域名(如 https://yourdomain.com),且必须是 HTTPS 协议。
  • 如果是本地开发环境,可以使用微信开发者工具的 开发环境校验 功能,临时忽略域名校验。

2. 检查 UniApp 代码

  • 确保在 manifest.json 中正确配置了微信小程序的 AppID
  • 确保调用微信授权登录的代码逻辑正确,例如:
    uni.login({
      provider: 'weixin',
      success: function (loginRes) {
        console.log('登录成功', loginRes);
        // 获取用户信息
        uni.getUserInfo({
          provider: 'weixin',
          success: function (infoRes) {
            console.log('用户信息', infoRes);
          },
          fail: function (err) {
            console.error('获取用户信息失败', err);
          }
        });
      },
      fail: function (err) {
        console.error('登录失败', err);
      }
    });
  • 确保 uni.loginuni.getUserInfo 的调用顺序正确。

3. 检查微信开发者工具配置

  • 如果你是在微信开发者工具中测试,确保在 项目设置 中勾选了 启用服务端口启用调试
  • 如果是真机调试,确保手机和开发环境在同一网络下,并且使用的是微信正式版(非测试版)。

4. 检查网络环境

  • 确保网络环境正常,微信授权登录需要访问微信服务器,如果网络不稳定可能导致回调失败。
  • 如果是本地开发环境,可以使用抓包工具(如 Charles 或 Fiddler)检查是否有请求发出以及响应内容。

5. 检查微信授权逻辑

  • 微信授权登录需要用户手动点击按钮触发,不能自动调用。确保在用户点击按钮后再调用 uni.login
  • 示例:
    <button @click="handleWechatLogin">微信登录</button>
    methods: {
      handleWechatLogin() {
        uni.login({
          provider: 'weixin',
          success: function (loginRes) {
            console.log('登录成功', loginRes);
          },
          fail: function (err) {
            console.error('登录失败', err);
          }
        });
      }
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!