uni-app百度小程序bug:未登录状态下提示用户登陆百度App,登录后小程序需要bindlogin回调函数却总提示未找到

uni-app百度小程序bug:未登录状态下提示用户登陆百度App,登录后小程序需要bindlogin回调函数却总提示未找到

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
产品分类:uniapp/小程序/百度

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:windows 10

HBuilderX类型:正式

HBuilderX版本号:3.4.7

第三方开发者工具版本号:3.56.1

基础库版本号:3.480.3

项目创建方式:HBuilderX

### 示例代码:

```html
<template>  
<button open-type="login" bindlogin="baiduLogin" >登录百度app</button>  
</template>  

<script>  
export default{  

  methods:{  
    baiduLogin(e){  
       console.log(e);   //回调函数,本应该执行,但是始终提示, no baidulogin method found in pages/xxx  
    }  
  }  

}  
</script>

操作步骤:

总是出现

预期结果:

回调成功

实际结果:

error: no baidulogin method found in pages/xxx

bug描述:

百度小程序的使用者可能处于未登录的状态,由于小程序必须登录才能使用。因此会阻断小程序进入。并提示用户登陆百度app。方式为,提供open-tyupe为login 的按钮。为了小程序能够知晓用户是否登录成功百度app,需要通过按钮的bindlogin属性提供回调函数,比如:bindlogin=“baiduLogin”进行回调。

但是登录成功后,提示:未发现方法baiduLogin

无论是把baiduLogin方法放入methods标签里边,还是放在外部,都不行。


更多关于uni-app百度小程序bug:未登录状态下提示用户登陆百度App,登录后小程序需要bindlogin回调函数却总提示未找到的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

没有问题,是对bindlogin的理解错误,应该用@login=“xxxx”

更多关于uni-app百度小程序bug:未登录状态下提示用户登陆百度App,登录后小程序需要bindlogin回调函数却总提示未找到的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在开发 uni-app 百度小程序时,遇到未登录状态下提示用户登录百度 App,登录后小程序需要 bindlogin 回调函数却提示未找到的问题,可能是由于以下几个原因导致的:

1. bindlogin 事件未正确绑定

确保你在页面的 swan 标签中正确绑定了 bindlogin 事件。例如:

<swan-login bindlogin="onLogin"></swan-login>

然后在对应的页面逻辑中定义 onLogin 方法:

Page({
  onLogin(e) {
    console.log('登录成功', e.detail);
    // 处理登录后的逻辑
  }
});

2. swan-login 组件未正确引入

确保你在页面的 json 配置文件中正确引入了 swan-login 组件:

{
  "usingComponents": {
    "swan-login": "path/to/swan-login"
  }
}

3. 百度小程序 SDK 版本问题

检查你使用的百度小程序 SDK 版本是否是最新的,或者是否存在已知的 bug。可以尝试更新 SDK 到最新版本,或者查看官方文档和社区是否有相关的解决方案。

4. 登录状态未正确同步

在用户登录后,确保登录状态已经正确同步到小程序中。可以通过 swan.getLoginCode 获取登录凭证,然后调用后端接口进行验证。

swan.getLoginCode({
  success(res) {
    const code = res.code;
    // 调用后端接口进行登录验证
  },
  fail(err) {
    console.error('获取登录凭证失败', err);
  }
});

5. 调试工具问题

有时候,百度小程序的调试工具可能会存在一些问题,导致事件未正确触发。可以尝试在真机上测试,看看问题是否依然存在。

6. 检查代码逻辑

确保你的代码逻辑没有错误,例如 bindlogin 事件绑定的方法名是否正确,方法是否在 Page 对象中定义等。

7. 官方文档和社区

如果以上方法都无法解决问题,建议查阅百度小程序的官方文档,或者在开发者社区中搜索相关问题,看看是否有其他开发者遇到过类似的问题。

示例代码

以下是一个完整的示例代码,供参考:

<!-- index.swan -->
<swan-login bindlogin="onLogin"></swan-login>
// index.js
Page({
  onLogin(e) {
    console.log('登录成功', e.detail);
    // 处理登录后的逻辑
  }
});
// index.json
{
  "usingComponents": {
    "swan-login": "path/to/swan-login"
  }
}
回到顶部