uni-app 3.96版本打包成app时uni.onBluetoothDeviceFound不执行

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

uni-app 3.96版本打包成app时uni.onBluetoothDeviceFound不执行

5 回复

我也遇到了 请问你解决了吗


目前没有,我试过了,用之前的基座在本地可以。3.96本地不行,云打包也不行,说明是3.96云打包服务器出现这个bug了,但是官方还没有维护,只能等官方修复了,或者你找到了方法了,希望你能留言

问题解决了吗

在 uni-app 3.96 版本中,uni.onBluetoothDeviceFound 不执行的问题可能由多种原因引起。以下是一些可能的原因和解决方法:

1. 权限问题

确保在打包成 App 时,已经正确配置了蓝牙相关的权限。在 manifest.json 文件中,需要添加以下权限:

{
  "permissions": {
    "android": [
      "android.permission.BLUETOOTH",
      "android.permission.BLUETOOTH_ADMIN",
      "android.permission.ACCESS_FINE_LOCATION"
    ],
    "ios": [
      "bluetooth",
      "location"
    ]
  }
}

2. 初始化蓝牙适配器

在调用 uni.onBluetoothDeviceFound 之前,需要先初始化蓝牙适配器。确保你已经调用了 uni.openBluetoothAdapter 并且成功初始化了蓝牙适配器。

uni.openBluetoothAdapter({
  success(res) {
    console.log('蓝牙适配器初始化成功', res);
    // 开始搜索设备
    uni.startBluetoothDevicesDiscovery({
      success(res) {
        console.log('开始搜索设备', res);
      },
      fail(err) {
        console.error('开始搜索设备失败', err);
      }
    });
  },
  fail(err) {
    console.error('蓝牙适配器初始化失败', err);
  }
});

3. 监听设备发现事件

确保你已经正确监听了 uni.onBluetoothDeviceFound 事件,并且在设备发现时能够正确触发回调。

uni.onBluetoothDeviceFound(function(devices) {
  console.log('发现设备', devices);
});

4. 设备兼容性问题

某些设备可能不支持蓝牙功能,或者蓝牙功能被禁用。确保你的设备支持蓝牙,并且蓝牙功能已经开启。

5. 调试模式

在开发过程中,建议使用真机调试,确保在真机上能够正常执行蓝牙相关功能。模拟器可能无法完全模拟蓝牙功能。

6. 版本兼容性

检查 uni-app 的版本是否与你的代码兼容。如果问题依然存在,可以尝试升级到最新版本的 uni-app,或者回退到一个已知稳定的版本。

7. 错误处理

在代码中添加错误处理,确保能够捕获并处理可能出现的错误。

uni.onBluetoothDeviceFound(function(devices) {
  console.log('发现设备', devices);
}, function(err) {
  console.error('监听设备发现事件失败', err);
});

8. 检查日志

查看控制台日志,确保没有其他错误或警告信息。日志信息可能会提供更多关于问题的线索。

9. 重新编译

有时候,重新编译项目可以解决一些奇怪的问题。尝试清理项目并重新编译。

# 清理项目
npm run clean

# 重新编译
npm run build
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!