微信小程序蓝牙授权完整流程

这篇具有很好参考价值的文章主要介绍了微信小程序蓝牙授权完整流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.用到的api

        1.1 authorize:

                提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。更多用法详见 用户授权。 > 小程序插件可以使用 wx.authorizeForMiniProgram

        1.2 getSetting

                获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限

        1.3 openSetting

                调起客户端小程序设置界面,返回用户设置的操作结果。设置界面只会出现小程序已经向用户请求过的权限

        1.4 getSystemInfoSync

                获取系统信息。由于历史原因,wx.getSystemInfo 是异步的调用格式,但是是同步返回,需要异步获取系统信息请使用 wx.getSystemInfoAsync

        1.5 openBluetoothAdapter

                初始化蓝牙模块。iOS 上开启主机/从机(外围设备)模式时需分别调用一次,并指定对应的 mode

  • 其他蓝牙相关 API 必须在 wx.openBluetoothAdapter 调用之后使用。否则 API 会返回错误(errCode=10000)。

  • 在用户蓝牙开关未开启或者手机不支持蓝牙功能的情况下,调用 wx.openBluetoothAdapter 会返回错误(errCode=10001),表示手机蓝牙功能不可用。此时小程序蓝牙模块已经初始化完成,可通过 wx.onBluetoothAdapterStateChange 监听手机蓝牙状态的改变,也可以调用蓝牙模块的所有API。

        1.6 openAppAuthorizeSetting

                跳转系统微信授权管理页

        1.7 openSystemBluetoothSetting

                跳转系统蓝牙设置页。仅支持安卓

        1.8 getBluetoothAdapterState       

                 获取本机蓝牙适配器状态

2.api对应效果图

authorize/openBluetoothAdapter

openSetting

小程序 opensetting 蓝牙,微信小程序,taro,reactjs 小程序 opensetting 蓝牙,微信小程序,taro,reactjs

        ⚠️注意:这里需要区分用户的微信应用蓝牙授权和系统蓝

根据openBluetoothAdapter失败返回的state区分ios系统下情况

state=3 =》 微信应用蓝牙授权

state=4 =》系统蓝牙

小程序 opensetting 蓝牙,微信小程序,taro,reactjs 小程序 opensetting 蓝牙,微信小程序,taro,reactjs

 3.思维导图

        ⚠️注意:完整的授权流程需要区分ios和android

小程序 opensetting 蓝牙,微信小程序,taro,reactjs文章来源地址https://www.toymoban.com/news/detail-859396.html

4.代码 (这里以Taro为例)

const bringBluetoothRight = () => {
            return new Promise((resolve, reject) => {
                getSetting({
                    success: (res) => {
                        if (res.authSetting['scope.bluetooth']) {
                            // 判断微信蓝牙是否授权
                            resolve(wechatBluetoothAuthUtils());
                        } else {
                            Taro.authorize({
                                scope: 'scope.bluetooth',
                                success: () => {
                                    // 同意微信授权
                                    resolve(wechatBluetoothAuthUtils());
                                },
                                fail: () => {
                                    showModal({
                                        content: 'xxx想要开启蓝牙完成连接,请开启小程序蓝牙授权',
                                        showCancel: false,
                                        success: () => {
                                            openSetting({
                                                success: (res) => {
                                                    if (res.authSetting['scope.bluetooth']) {
                                                        // 同意微信授权
                                                        resolve(wechatBluetoothAuthUtils());
                                                    }
                                                },
                                            });
                                        },
                                    });
                                },
                            });
                        }
                    },
                });
            });
        };

        const wechatBluetoothAuthUtils = () => {
            const { bluetoothEnabled, platform } = getSystemInfoSync();
            // 设备为IOS时,微信蓝牙是否开启
            if (platform === 'ios') {
                return new Promise((resolve, reject) => {
                    // 初始化蓝牙模块(用openBluetoothAdapter 方法解决部分ios设备,授权蓝牙失败的问题)
                    Taro.openBluetoothAdapter({
                        success: () => {
                            // 开启蓝牙功能 =》 初始化拾果sdk
                            resolve(true);
                        },
                        fail: (openBlueFail) => {
                            if (openBlueFail.state === 3) {
                                // 说明微信应用蓝牙未授权
                                showModal({
                                    content: '检测到您未允许微信访问手机蓝牙权限,是否打开系统设置?',
                                    showCancel: false,
                                    confirmText: '前往设置',
                                    success: () => {
                                        // 跳转微信应用权限
                                        openAppAuthorizeSetting();
                                    },
                                });
                            } else if (openBlueFail.state === 4) {
                                // 说明系统蓝牙未开启
                                showModal({
                                    content:
                                        '蓝牙设置 - 小程序需要通过蓝牙搜索和连接设备,请确认手机蓝牙功能是否已开启?',
                                    showCancel: false,
                                    confirmText: '我已开启',
                                    success: async () => {
                                        const { bluetoothEnabled, platform } = getSystemInfoSync();
                                        if (bluetoothEnabled) {
                                            // 开启蓝牙功能
                                            resolve(true);
                                        } else {
                                            toast({ title: '手机蓝牙未开启' });
                                        }
                                    },
                                });
                            }
                        },
                    });
                });
            } else {
                return new Promise(function (resolve, reject) {
                    // andriod
                    if (!bluetoothEnabled) {
                        // 说明系统蓝牙未开启
                        showModal({
                            content: '蓝牙设置 - 小程序需要通过蓝牙搜索和连接设备,请确认手机蓝牙功能是否已开启?',
                            showCancel: false,
                            confirmText: '我已开启',
                            success: async () => {
                                const { bluetoothEnabled, platform } = getSystemInfoSync();
                                if (bluetoothEnabled) {
                                    // 开启蓝牙功能
                                    resolve(true);
                                } else {
                                    toast({ title: '手机蓝牙未开启' });
                                }
                            },
                        });
                    } else {
                        // 开启蓝牙功能
                        resolve(true);
                    }
                });
            }
        };

到了这里,关于微信小程序蓝牙授权完整流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序授权登录流程

    我是IT果果日记,微信公众号请搜索 IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 首先, 我们要了解什么是微信小程序登录?它的作用是什么? 微信小程序登录是为了让开发者的服务器获取用户的openId以及session_key的令牌。 请不要

    2024年02月14日
    浏览(41)
  • 【微信小程序】授权登录流程解析

      目录 微信授权登录流程 1. 官方图示流程详解 2. 代码登录流程拆解 2.1 前端代码示例讲解 2.2 后端代码示例讲解 2.3 代码登录流程拆解 🌟 3. 表情包存储展示(扩展) 附议  ① 微信服务器验证: 当用户打开小程序时,小程序会向用户展示登录按钮,用户点击登录按钮后,小

    2024年02月08日
    浏览(32)
  • 微信小程序扫描蓝牙及操作(低功耗)蓝牙数据(全套流程)

    扫描蓝牙首先需要打开手机上的蓝牙。iOS只需打开蓝牙即可开始扫描蓝牙;Android需要打开蓝牙及位置信息才可以开始扫描蓝牙。下面的代码可以在扫描之前使用,用来检查是否已经很打开蓝牙及位置信息 官方地址https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth/wx.stopBl

    2024年02月09日
    浏览(38)
  • 微信小程序蓝牙功能全套开发流程介绍

    1.1初始化蓝牙模块(打开蓝牙适配器) 初次加载,自动获取获取系统信息,检查蓝牙适配器是否可用 初始化蓝牙,提示打开GPS和蓝牙,开始自动搜索蓝牙设备 1.2搜索周围蓝牙 开始搜索蓝牙设备,定时1s获取搜索到的设备 把搜索到的设备保存在一个数组内,渲染在页面 1.3监

    2024年02月08日
    浏览(37)
  • 微信小程序之微信授权登入及授权的流程讲解

    目录 一、流程讲解 1. 图解 2. 讲解 二、官方登入 wxLogin wx.getUserProfile 代码 三、数据交互授权登入 1. 前端 2. 后端代码 这张图片是关于微信小程序授权登录的流程图。流程图展示了使用微信官方提供的登录能力来获取用户身份标识的过程。下面是对流程图中的一些关键步骤的

    2024年02月05日
    浏览(33)
  • 微信小程序三种授权登录以及授权登录流程讲解

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《 微信小程序开发实战 》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你

    2024年02月08日
    浏览(37)
  • uniapp(vue3) - 详解微信小程序平台用户授权登录全流程,uniapp v3版本中小程序端开发下用户点击登录后获取手机号/昵称/性别/头像等信息完成登录(提供完整示例代码,一键复制开箱即用)

    在uniapp(v3)微信小程序端开发中,超详细实现用户授权登录完整功能源码,用户授权后获取手机号/昵称/头像/性别等,提供完整思路流程及逻辑讲解。 你也可以直接复制粘贴,然后改下参数放到你的项目中去就行。 做功能之前,先

    2024年02月05日
    浏览(45)
  • 微信小程序支付完整流程

    1、注册微信支付商户号(由上级或法人注册) 注册链接:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal#none 此商户号,需要由主管及更上级领导进行注册,会成为公司收款账户 企业注册需要材料:营业执照,对公银行账户信息,法人身份证 2、注册小程序账号(由上级或

    2024年02月10日
    浏览(36)
  • 微信小程序使用腾讯地图完整流程

    前言:开发小程序需要得到定位和位置的省市区文字信息,看了所有的文章都没有一个完整和像样的,全是copy来,copy去的文章 - _ -!,一怒之下,开始了自己的踩坑之路 腾讯地图地址:腾讯位置服务 - 立足生态,连接未来 1.常规的申请账号登录 2.新建应用  3.点击添加key  

    2023年04月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包