小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)

简介: 小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)

小程序获取WIFI的API(IOS conncetWifi()自动跳转设置页)

1. 官方说明

小程序对于wifi的常用接口有

startWifi: 初始化 Wi-Fi 模块

connectWifi: 连接 Wi-Fi(iOS 需 11 及以上版本支持

onGetWifiList: 获取到 Wi-Fi 列表数据事件

但是有这两点注意事项


Android 系统 6.0 以上版本,在没有打开定位开关的时候会导致设备不能正常获取周边的 Wi-Fi 信息。

Wi-Fi 相关接口暂不可用 wx.canIUse 接口判断。


2. IOS conncetWifi()自动跳转设置页解决思路


小程序IOS获取WIFI列表有个缺陷就是会自动跳转到手机设置页面,需要点击无线局域网,等到WIFI列表加载出来之后小程序的onGetWifiList()接口才能返回wifi列表。对于这种情况有两种方式。


方法一、IOS只调用startWifi()方法,不去调用onGetWifiList方法。让用户手动输入wifi名称。再去连接wifi。这样需要用户手动输入,但是不用跳转到设置页面。不需要切换回小程序。


方法二、把 onGetWifiList()方法写在onShow()里,就可以获取到wifi列表了。


3. wifi的API

通过判断是安卓还是IOS,安卓需要判断是否有位置信息。IOS的话,就不去获取wifi列表了,如果需要的话,放在页面的onShow()里。initWIFI()方法会返回wifi列表。

async function initWIFI() {
    let sysInfo = wx.getSystemInfoSync()
    let platform = sysInfo.platform
    // 只有ios 11以上,及andoird 6以上,才有这样的wifi连接功能
    if (platform == "android") {
        let sysVersion = parseInt(sysInfo.system.substr(8))
        if (sysVersion < 6) {
            return {ok:false,msg:"android版本低"}
        }
        let res0 = await wx.getSetting({
            withSubscriptions: false,
        }).catch(err => {
            console.log("err", err);
            return {ok:false,msg:`运行错误:${err}`}
        })
        if (res0 && !res0.authSetting["scope.userLocation"]) {
            // 如果没有这个权限,先授权
            let authRes = await wx.authorize({
                scope: 'scope.userLocation'
            }).catch(err => {
                console.log("err", err);
                return {ok:false,msg:`运行错误:${err}`}
            })
            if (authRes && authRes.errMsg != "authorize:ok") {
                console.log('地理授权失败', authRes.errMsg);
                return {ok:false,msg:'android地理授权失败'}
            }
        }
        await wx.startWifi().catch(err => {
            console.log("err", err);
            return {ok:false,msg:`运行错误:${err}`}
        })
        await wx.getWifiList().catch(err => {
            console.log("err", err);
            return {ok:false,msg:`运行错误:${err}`}
        })
        let res = await new Promise((resolve, reject) => {
            wx.onGetWifiList(res => {
                resolve(res)
            })
        })
        if (!res.wifiList.length) return {ok:false,msg:"wifi列表为空"}
        console.log("res.wifiList", res.wifiList);
        return {ok:true,msg:'WIFI列表获取成功',data:res.wifiList}
    } else if (platform == "ios") {
        let sysVersion = parseInt(sysInfo.system.substr(4))
        if (sysVersion < 11) {
            return {ok:false,msg:"ios版本低"}
        }
        await wx.startWifi().catch(err => {
            console.log("err", err);
            return {ok:false,msg:`运行错误:${err}`}
        })
        return {ok:true,msg:'WIFI列表获取成功',data:[]}
    } else {
        return {ok:false,msg:"平台不支持"}
    }
}
export default initWIFI


目录
相关文章
|
30天前
|
前端开发 小程序 API
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
【微信小程序】-- 使用 npm 包 - API Promise化(四十二)
|
30天前
|
存储 开发框架 小程序
社区每周丨小程序 CLI 1.8.10 版本上线及基础API新增接口(7.3-7.7)
社区每周丨小程序 CLI 1.8.10 版本上线及基础API新增接口(7.3-7.7)
62 11
|
14天前
|
SQL API 数据库
为API设置默认排序规则结果数据的正确性
Dataphin数据服务支持API调用时通过OrderByList自定义排序,确保数据返回符合业务需求。默认排序在API设计时至关重要,因为它影响用户体验、数据一致性及查询正确性。新版本 Dataphin 提供了排序优先级设置,允许在SQL脚本或OrderByList中指定排序,以适应不同场景。
|
30天前
|
API Python
记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)
记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)
35 0
|
30天前
|
移动开发 小程序 安全
使用阿里云短信+微信短链接跳转微信小程序
此内容是关于使用阿里云短信带传递参数的微信短链接跳转到微信小程序。首先,需要准备微信开发者工具和一个已认证的小程序。接着,开通云开发并配置云开发权限。然后,配置H5静态网页,包括设置云开发权限和处理不同设备的跳转方式。最后,上传云函数并修改其权限,获取微信短信链接,配置短链接参数,并开通阿里云短信服务以进行测试验证。整个过程涉及到了微信开发者工具、云开发、H5页面配置、云函数的创建和部署以及阿里云短信服务的开通和使用等步骤。
107 0
|
30天前
|
小程序 前端开发 API
小程序全栈开发中的RESTful API设计
【4月更文挑战第12天】本文探讨了小程序全栈开发中的RESTful API设计,旨在帮助开发者理解和掌握相关技术。RESTful API基于REST架构风格,利用HTTP协议进行数据交互,遵循URI、客户端-服务器架构、无状态通信、标准HTTP方法和资源表述等原则。在小程序开发中,通过资源建模、设计API接口、定义资源表述及实现接口,实现前后端高效分离,提升开发效率和代码质量。小程序前端利用微信API与后端交互,确保数据流通。掌握这些实践将优化小程序全栈开发。
|
30天前
|
小程序 API 开发者
可以在钉钉小程序中直接跳转到审批单提交页面
【2月更文挑战第19天】可以在钉钉小程序中直接跳转到审批单提交页面
56 5
|
30天前
|
小程序 API
小程序中用于跳转页面的5个api是什么?区别?
小程序中用于跳转页面的5个api是什么?区别?
|
30天前
|
移动开发 小程序 API
【每周一个小技巧】支付宝小程序内如何跳转生活号文章
【每周一个小技巧】支付宝小程序内如何跳转生活号文章
125 6
|
30天前
|
小程序 JavaScript 前端开发
【每周一个小技巧】支付宝小程序如何跳转到支付宝搜索页面
【每周一个小技巧】支付宝小程序如何跳转到支付宝搜索页面
58 6