问题过程:
最近在看微信小程序开发,在做到蓝牙开发时候,遇到问题,蓝牙打开失败,一开始以为是自己的代码有问题,随后专门到网上找了别人的标准代码,发现还是有问题,随后寻找了试着手动打开蓝牙,发现,open蓝牙是成功的。随后多次百度,也是有小部分人反馈这个问题。
分析:
微信小程序在open 蓝牙的时候,log一直提示失败,但手动打开蓝牙后,执行这个方法log成功。联想到以往做Android热点开发时,直接open都需要跳转至系统热点页面,然后手动开启。这样参考下来,其实微信小程序的open蓝牙方法并不是打开蓝牙,而是初始化蓝牙,初始化成功则返回success,否则faile。以此引申:微信小程序在打开热点,wifi的时候应该也有类似的情况。(博主尚未测试)
解决方案:
如果以上分析没有问题的话,那么在开发时,只能通过 open蓝牙方法初始化蓝牙,以此检测用户是否有开启蓝牙,如果success,那么正常继续下一步操作,如果faile那么就是没有打开蓝牙,弹出提示框,提示用户手动开启蓝牙。
引申方案:(待实践)
曾经在开发H5+APP时,也遇到打开Android驱动(蓝牙,相机这些),当时用的是Native.js开启的相机,而微信小程序其实归根结底也是一个H5,是否可以引入类似Native.js去实现打开蓝牙的功能呢?甚至是深入的去开发蓝牙模块???此方案有待检测。
ps:欢迎各位大神指正,也希望各位大神测试过的留下宝贵的经验,谢谢