uni-app uni.preLogin 不执行

uni-app uni.preLogin 不执行

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

示例代码:

uni.preLogin({  
    provider: res.provider[1],  
    success(){  //预登录成功  
        // 显示一键登录选项  
        console.log('显示一键登录')  
    },  
    fail(res){  // 预登录失败  
        // 不显示一键登录选项(或置灰)  
        // 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器  
        console.log(res.errCode)  
        console.log(res.errMsg)  
    }  
})

操作步骤:

uni.preLogin({  
    provider: res.provider[1],  
    success(){  //预登录成功  
        // 显示一键登录选项  
        console.log('显示一键登录')  
    },  
    fail(res){  // 预登录失败  
        // 不显示一键登录选项(或置灰)  
        // 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器  
        console.log(res.errCode)  
        console.log(res.errMsg)  
    }  
})

uni.login({  
   provider: 'univerify',  
   univerifyStyle: {}, // 这里配置样式  
   success: () {  

  }  

})

预期结果:

  • 可以调用一键登录

实际结果:

  • 无效果

bug描述:

uni.preLogin 不执行, 一键登录也不执行,后台哪里也绑定了,用标准基座没问题,如果用自定义基座就不行了(自定义基座刚打的,云打包也不行)


更多关于uni-app uni.preLogin 不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html

27 回复

账号已经开通,且给要使用的应用开通。
调用uni.preLogin是什么表现?
调用uni.login是什么表现

更多关于uni-app uni.preLogin 不执行的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你好,我也是这个问题,您看能否帮慢看一下

标准基座可以,自定义基座没有任何反应

回复 1***@qq.com: 是否给此应用开通,是否,重新给应用开通试试

回复 DCloud_UNI_LXH: 遇到一样的问题,请问怎么解决的?,我的MD5值和SHA256值都是公共的,是不是这个原因?

回复 医美: 如果之前申请一键登录用的是DCloud公测证书,由于最近DCloud公测证书变更,开发者需要生成自己的证书,重新申请开通一键登录,重新制作自定义基座调试或者重新打正式包,否则会影响一键登录功能的使用。

你好,我在调用uni.preLogin()报错:“uni.preLogin is not a function”,是什么问题呢?我这边已经申请一键登录了!

回复 9***@qq.com: 在哪儿使用的?

应用已开通,没任何反应

私聊发我一下appid或者编辑问题在输⼊机密信息中填写一下appid

回复 DCloud_UNI_LXH: 已发

回复 叫啥好呢: 查了一下,你昨天一直在使用一个失效的token请求。今天发现在正在重新申请开通一键登录

回复 DCloud_UNI_LXH: 日志里是我通过url调用的 每一个token只能用一次吗 还是没有次数限制(有时间限制)。我主要是preLogin 和 login 都调不起来 ,也就拿不到token了,没折了,今天就删应用 重新试下

回复 DCloud_UNI_LXH: 应用今天又绑了下, uni.preLogin 还是无反应

调用uni.getProvider 返回以下内容
{ “errMsg”: “getProvider:ok”, “service”: “oauth”, “provider”: [“weixin”, “univerify”] }

解决了吗?

我也遇到这个问题:
uni.preLogin 不执行, 一键登录 也不执行, 后台哪里也绑定了, 用标准基座没问题, 如果用自定义基座就不行了(自定义基座刚打的,云打包也不行)

同样的问题解决了吗

统一回复一下关于一键登录 preLogin 不执行回调的问题:

请确认当前账户已开通一键登录
请确认当前 appId 的应用已添加一键登录
确认已勾选模块,uni.getProvider 可以获取到 univerify
请勿重复使用 token
如果之前申请一键登录用的是 DCloud公测证书,由于最近 DCloud公测证书 变更,开发者需要生成自己的证书,重新申请开通一键登录,重新制作自定义基座调试或者重新打正式包,否则会影响一键登录功能的使用。

我的也不行 已经开通了一键登录 也添加和勾选了一键登录、也能获取到univerify 用的是自己的证书 就是弹不出来。uni.preLogin 预登陆都不会走success 和fail

回复 9***@qq.com: 私聊我一下appid

回复 DCloud_UNI_LXH: 我也遇到了同样的问题,success fail都没有任何反应 麻烦帮忙看下

回复 DCloud_UNI_LXH: 大佬,快带带我,我也是一样的问题

大佬,我的也是一样的问题,uni.preLogin不会走success和fail。麻烦帮忙看看

我也是一样的问题,解决了吗

我也遇到这样的问题,请问解决了吗

从你的描述来看,问题主要出现在自定义基座和云打包环境下uni.preLogin不执行。这种情况通常与以下几个因素有关:

  1. 配置问题:检查manifest.json中是否已正确配置一键登录(univerify)模块。在HBuilderX中,需要确保“App模块配置”中勾选了“OAuth(登录鉴权)”,并正确填写了各平台(如App-Android、App-iOS)的配置参数,包括appid和密钥等。

  2. 自定义基座问题:自定义基座需要重新生成并确保包含最新的配置。如果修改了univerify相关设置,必须重新制作自定义基座,否则配置不会生效。请尝试删除旧基座,在HBuilderX中重新“运行”->“制作自定义基座”,然后使用新基座测试。

  3. 打包环境差异:标准基座正常而自定义基座异常,可能是打包时模块未正确包含。在云打包时,确认在“原生App-云打包”设置中勾选了univerify模块,并上传了正确的配置文件(如Android的签名证书)。

  4. 代码逻辑检查:确保res.provider[1]有效且为'univerify'。建议直接指定provider为'univerify',避免依赖动态数组索引导致错误。示例:

    uni.preLogin({
        provider: 'univerify',
        success() {
            console.log('预登录成功');
        },
        fail(res) {
            console.log('失败:', res.errCode, res.errMsg);
        }
    });
回到顶部