更新记录
1.3.1(2025-11-17)
新增人脸开锁、遥控器、门磁等功能
1.2.2(2025-01-09)
修复高版本系统 蓝牙扫描问题
1.2.1(2024-12-27)
修复高版本安卓无法搜索蓝牙设备的bug
查看更多平台兼容性
| Android | Android CPU类型 | iOS |
|---|---|---|
| 适用版本区间:6.0 - 15.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:12 - 18 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
如想体验功能,可安装测试app,安装密码:123456
使用方法
const TTLock = uni.requireNativePlugin("ainuo-ttlock")
TTLock.isBLEEnabled()
全局监听方法
1.lock_add_card 监听添加卡事件
2.lock_add_fingerprint 监听添加指纹事件
var globalEvent = uni.requireNativePlugin('globalEvent');
onLoad(params) {
globalEvent.addEventListener('lock_add_card', (e)=> {});
globalEvent.addEventListener('lock_add_fingerprint', (e)=> {});
}
callback返回结构
| 参数 | 对应值 |
|---|---|
| status | 状态 |
| ...others | 其他返回参数如lockData |
存在错误时会返回通通锁errorCode
| 参数 | 对应值 |
|---|---|
| errorCode | 通通锁返回错误状态码 |
| errorMsg | 通通锁返回错误描述 |
重要
插件默认不会申请任何权限,再确认打开蓝牙启动查找设备时,确认app已获取位置权限 或者可以使用uni.getLocation来获得位置权限
uni.getLocation({
type: 'wgs84',
geocode: true,
success: (res) =>{
TTLock.startScanLock((data) => {
})
},
fail(e) {
console.log(e)
}
});
接口列表
本插件封装处通通锁所有接口名称与参数与官方保持一至
用于判断蓝牙是否可用
isBLEEnabled()
请求打开蓝牙
requestBleEnable()
蓝牙操作前的准备工作
注意:仅 Android 平台支持此方法
prepareBTService()
停止蓝牙服务并且释放资源
注意:仅 Android 平台支持此方法
stopBTService()
启动扫描锁 调用该方法会持续查找附件设备信息
startScanLock((device)=>{})
停止扫描
topScanLock()
初始化锁 初始化成功后返回lockData,每个锁只能初一始化一次,lockData需要存储
initLock(String lockMac, callback)
重置电子钥匙 重置电子钥匙,成功之后, lockFlagPos将会发生改变,需要向自己服务端更新lockData。
resetEkey(String lockData,String lockMac, callback)
重置锁 重置锁意味着恢复出厂设置,如果你想要再次使用该锁,你需要重新初始化该锁。
resetLock(String lockData,String lockMac, , callback)
开关锁操作(ControlAction.LOCK and ControlAction.UNLOCK) action=3 开锁 action=6 闭锁
controlLock(int action, String lockData, String lockMac,, callback)
获取音频的开关状态
getMuteModeState(
String lockData,
String lockMac,
callback)
设置音频开关状态 true – on, false – off
setMuteMode(
boolean enable,
String lockData,
String lockMac,
callback)
校准锁时间
setLockTime(
long timestamp,
String lockData,
String lockMac,
callback)
获取锁时间 getLockTime( String lockData, String lockMac, callback) 获取锁日志 logType=0 – 获取最新的操作记录,既上次获取之后新增的。
logType=1 – 锁里面存储的完整记录。
getOperationLog(
int logType,
String lockData,
String lockMac,
callback)
获取锁电量
getBatteryLevel(
String lockData,
String lockMac,
callback)
设置自定义密码(4 – 9位密码)
createCustomPasscode(
String passcode,
long startDate,
long endDate,
String lockData,
String lockMac,
callback)
修改密码 newPasscode为空表示不修改密码。
startDate 和endDate都为0表示不修改有效期。
modifyPasscode(
String originalCode,
String newCode,
long startDate,
long endDate,
String lockData,
String lockMac,
callback)
删除密码
deletePasscode(
String passcode,
String lockData,
String lockMac,
callback)
重置密码(之前生成的密码都将失效)
resetPasscode(
String lockData,
String lockMac,
callback)
获取锁里所有的有效密码
getAllValidPasscodes(
String lockData,
String lockMac,
callback)
修改管理码
modifyAdminPasscode(
String newPasscode,
String lockData,
String lockMac,
callback)
添加IC卡 startDate和endDate都为0表示添加永久期限的IC卡。 addICCard通过全局事件lock_add_card监听
addICCard(
long startDate,
long endDate,
String lockData,
String lockMac)
修改IC卡有效期
modifyICCardValidityPeriod(
long startDate,
long endDate,
String cardNum,
String lockData,
String lockMac,
callback)
获取所有有效的IC卡
getAllValidICCards(
String lockData,
String lockMac,
callback)
删除IC卡
deleteICCard(
String cardNum,
String lockData,
String lockMac,
callback)
清空IC卡
clearAllICCard(
String lockData,
String lockMac,
callback)
添加指纹 startDate 和endDate都为0意味着添加永久指纹。
addFingerprint通过全局事件lock_add_fingerprint监听
addFingerprint(
long startDate,
long endDate,
String lockData,
String lockMac)
获取所有有效的指纹
getAllValidFingerprints(
String lockData,
String lockMac,
callback)
删除指纹
deleteFingerprint(
String fingerprintNum,
String lockData,
String lockMac,
callback)
清空所有指纹
clearAllFingerprints(
String lockData,
String lockMac,
callback)
修改指纹有效期
modifyFingerprintValidityPeriod(
long startDate,
long endDate,
String fingerprintNum,
String lockData,
String lockMac,
callback)
连接锁 该接口可以用于判断用户在没在锁附近
注意:仅 Android 平台支持此方法,iOS 平台调用此方法会返回错误信息"ios没有该方法"
connectLock(String lockMac,callback)
断开连接
注意:仅 Android 平台支持此方法,iOS 平台调用此方法会返回错误信息"ios没有该方法"
disconnect()
获取锁状态
getLockStatus(String lockData, String lockMac,callback)
设置锁酒店
options={
buildNumber,
floorNumber,
hotelInfo
}
setHotelData(JSONObject options, String lockData,callback)
设置锁扇区
sectorStr 1,2,3 表示 扇区 1 2 3
setHotelCardSector(String sectorStr, String lockData,callback)
设置闭锁时间
setAutomaticLockingPeriod(int seconds, String lockData, String lockMac,callback)
获取闭锁时间
getAutomaticLockingPeriod(String lockData,callback)
设置远程开锁开关
setRemoteUnlockSwitchState( boolean enable,String lockData,String lockMac,callback)
获取远程开锁开关状态
getRemoteUnlockSwitchState(String lockData,String lockMac,callback)
获取常开模式数据
getPassageMode(String lockData,String lockMac,callback)
设置常开模式数据
const modeData={
modeType:0/1,
startDate:8*60, //am 8:00
endDate:18*60, //pm 16:00
days:1,2,3,4,5
}
setPassageMode(Object modeData,String lockData,String lockMac,callback)
删除常开模式
const deletePassageMode={
modeType:0/1,
startDate:8*60, //am 8:00
endDate:18*60, //pm 16:00
days:1,2,3,4,5
}
deletePassageMode(Object modeData,String lockData,String lockMac,callback)
清空常开模式
clearPassageMode(String lockData,String lockMac,callback)
wifi锁扫描附近可用wifi
scanWifi(String lockData,callback)
配置wifi锁连接的wifi
configWifi(String wifiName, String wifiPassword, String lockData,callback)
配置wifi锁连接的服务器
configServer(String serverAddress, int portNumber, String lockData, callback)
获取wifi锁的wifi信息
getWifiInfo(String lockData, callback)
wifi锁 ip设置
wifi锁需要支持静态ip的设置才可以使用该接口
即调用 isSupportFeature(lockData,58)返回true即支持;
ipSets={
/**
* 0 -固定ip
* 1 -DHCP 自动获取ip地址
*/
int type;
/**
* 静态ip
*/
String ipAddress;
/**
* 子网掩码
*/
String subnetMask;
/**
* 默认网关
*/
String router;
/**
* 首选dns
*/
String preferredDns;
/**
* 备用dns
*/
String alternateDns;
}
configIp(Object ipSets,String lockData,callback)
检测锁是否支持某特性
参数value为sdk中的特性值
boolean resukt=isSupportFeature(lockData,int value)
锁音量设置
soundVolume值范围 -2-5,-2为ON,-1关闭,其他值为音量大小
setLockSoundWithSoundVolume(int soundVolume,String lockData,callback)
锁音量查询
getLockSoundWithSoundVolume(String lockData, callback)
锁开关设置
setLockConfig(String configType,boolean switchOn, String lockData, callback)
网关使用方法
const TTLockGate = uni.requireNativePlugin("ainuo-ttlockgate")
## callback返回结构
| 参数 | 对应值 |
| ---- | ---- |
| status | 状态 |
| ...others | 其他返回参数如mac地址 |
存在错误时会返回通通锁errorCode
| 参数 | 对应值 |
| ---- | ---- |
| errorCode | 通通锁返回错误状态码 |
| errorMsg | 通通锁返回错误描述 |
## 重要
插件默认不会申请任何权限,再确认打开蓝牙启动查找设备时,确认app已获取位置权限
或者可以使用uni.getLocation来获得位置权限
uni.getLocation({ type: 'wgs84', geocode: true, success: (res) =>{
},
fail(e) {
console.log(e)
}
});
## 接口列表
本插件封装处通通锁所有接口名称与参数与官方保持一至
用于判断蓝牙是否可用
isBLEEnabled()
请求打开蓝牙
requestBleEnable()
蓝牙操作前的准备工作
prepareBTService()
启动扫描网关
调用该方法会持续查找附件设备信息
startScanGateway(()=>{})
停止扫描
stopScanGateway()
连接网关
connectGateway(String lockMac,()=>{})
断开
disconnectGateway()
初始化网关
options={ public String ssid = "ssid"; public String wifiPwd = "wifipwd"; public int uid; public String userPwd; public String gatewayName; } ` initGateway(Object options,()=>{})
扫描附近网关可用的wifi列表
scanWiFiByGateway(String mac,()=>{})
48.ip设置
ipSets={ /**
- 0 -固定ip
-
1 -DHCP 自动获取ip地址 */ int type;
/**
- 静态ip */ String ipAddress; /**
- 子网掩码 */ String subnetMask; /**
-
默认网关 */ String router;
/**
-
首选dns */ String preferredDns;
/**
- 备用dns
*/
String alternateDns;
}
configIp(Object ipSets,String lockData,callback)
设置梯控工作模式
mode= ActivateAllFloors,ActivateSpecificFloors;
setLiftWorkMode(String mode, String lockData,()=>{})
设置梯控关联的楼层
controlableFloors 数据格式 "1,2,3" 表示关联楼层1、2、3
setLiftControlableFloors(String controlableFloors, String lockData,()=>{})
设置梯控可到达的楼层
activateFloors 可达楼层列表,JSON数组字符串格式,如 "[1,2,3]" 表示楼层1、2、3
currentDate 当前系统时间(时间戳)。传入0,默认使用当前手机时间
activateLiftFloors(String activateFloors, long currentDate, String lockData, callback)
示例:
// 激活楼层 1、2、3
const floors = "[1,2,3]"; // JSON 数组字符串
const currentTime = Date.now();
TTLock.activateLiftFloors(floors, currentTime, lockData, (result) => {
if (result.status === 1) {
console.log('激活成功');
console.log('电量:', result.battery);
console.log('设备时间:', result.deviceTime);
} else {
console.error('激活失败:', result.errorMsg);
}
});
- 添加人脸
const validityInfo = {
//1为按时间范围 ,4为指定周期
modeType: 1,
startDate: 1742059885286,
endDate: 1743059885286,
}
const validityInfo = {
//1为按时间范围 ,4为指定周期
modeType: 4,
cyclicConfigs: [{
weekDay: 1,
startDate: 1742059885286,
endDate: 1743059885286,
},
{
weekDay: 2,
startDate: 1742059885286,
endDate: 1743059885286,
}
]
}
public void addFace(String lockData, ValidityInfo validityInfo, AddFaceCallback callback)
- 修改人脸有效期
/**
* 修改人脸有效期
* @param lockData 锁数据
* @param faceNumber 人脸编号
* @param validityInfo 新的有效期信息,格式同添加人脸
* @param callback 回调函数,返回修改结果
*/
public void modifyFaceValidityPeriod(String lockData, long faceNumber, ValidityInfo validityInfo, ModifyFacePeriodCallback callback)
- 删除人脸
/**
* 删除指定的人脸
* @param lockData 锁数据
* @param faceNumber 要删除的人脸编号
* @param callback 回调函数,返回删除结果
*/
public void deleteFace(String lockData, long faceNumber, DeleteFaceCallback callback)
- 清空人脸
/**
* 清空锁中所有人脸数据
* @param lockData 锁数据
* @param callback 回调函数,返回清空结果
*/
public void clearFace(String lockData, ClearFaceCallback callback)
- 添加人脸数据
/**
* 添加人脸特征数据
* @param lockData 锁数据
* @param featureData 人脸特征值数据
* @param validityInfo 有效期信息,格式同添加人脸
* @param callback 回调函数,返回添加结果
*/
public void addFaceFeatureData(String lockData, String featureData, ValidityInfo validityInfo, AddFaceCallback callback)
- 获取锁上所有有效人脸数据
/**
* 获取锁中所有有效的人脸数据
* @param lockData 锁数据
* @param callback 回调函数,返回所有有效人脸数据
*/
public void getAllValidFaces(String lockData, GetAllFacesCallback callback)
- 添加掌静脉
/**
* 添加掌静脉
* @param lockData 锁数据
* @param validityInfo 有效期信息
* modeType: 1为按时间范围,4为指定周期
* 当modeType=1时,需要startDate和endDate
* 当modeType=4时,需要cyclicConfigs数组,包含weekDay(星期几)、startDate和endDate
* @param callback 回调函数,返回添加结果
*/
public void addPalmVein(String lockData, ValidityInfo validityInfo, AddPalmVeinCallback callback)
- 修改掌静脉有效期
/**
* 修改掌静脉的有效期
* @param lockData 锁数据
* @param palmVeinNumber 掌静脉编号
* @param validityInfo 新的有效期信息
* 同添加掌静脉中的validityInfo格式
* @param callback 回调函数,返回修改结果
*/
public void modifyPalmVeinValidityPeriod(String lockData, long palmVeinNumber, ValidityInfo validityInfo, ModifyPalmVeinPeriodCallback callback)
- 删除掌静脉
/**
* 删除指定的掌静脉
* @param lockData 锁数据
* @param palmVeinNumber 要删除的掌静脉编号
* @param callback 回调函数,返回删除结果
*/
public void deletePalmVein(String lockData, long palmVeinNumber, DeletePalmVeinCallback callback)
- 清空掌静脉
/**
* 清空锁中所有掌静脉数据
* @param lockData 锁数据
* @param callback 回调函数,返回清空结果
*/
public void clearPalmVein(String lockData, ClearPalmVeinCallback callback)
- 获取锁上所有有效的掌静脉
/**
* 获取锁中所有有效的掌静脉数据
* @param lockData 锁数据
* @param callback 回调函数,返回所有有效掌静脉数据
*/
public void getAllValidPalmVeins(String lockData, GetAllPalmVeinsCallback callback)
添加人脸相关接口说明
- 添加人脸
/**
* 添加人脸
* @param lockData 锁数据
* @param validityInfo 有效期信息对象
* 示例1(按时间范围):
* {
* modeType: 1,
* startDate: 1742059885286, // 开始时间戳
* endDate: 1743059885286 // 结束时间戳
* }
*
* 示例2(指定周期):
* {
* modeType: 4,
* cyclicConfigs: [
* {
* weekDay: 1, // 周一
* startDate: 1742059885286,
* endDate: 1743059885286
* },
* {
* weekDay: 2, // 周二
* startDate: 1742059885286,
* endDate: 1743059885286
* }
* ]
* }
* @param callback 回调函数,返回添加结果
*/
public void addFace(String lockData, ValidityInfo validityInfo, AddFaceCallback callback)
- 修改人脸有效期
/**
* 修改人脸有效期
* @param lockData 锁数据
* @param faceNumber 人脸编号
* @param validityInfo 新的有效期信息,格式同添加人脸
* @param callback 回调函数,返回修改结果
*/
public void modifyFaceValidityPeriod(String lockData, long faceNumber, ValidityInfo validityInfo, ModifyFacePeriodCallback callback)
- 删除人脸
/**
* 删除指定的人脸
* @param lockData 锁数据
* @param faceNumber 要删除的人脸编号
* @param callback 回调函数,返回删除结果
*/
public void deleteFace(String lockData, long faceNumber, DeleteFaceCallback callback)
- 清空人脸
/**
* 清空锁中所有人脸数据
* @param lockData 锁数据
* @param callback 回调函数,返回清空结果
*/
public void clearFace(String lockData, ClearFaceCallback callback)
- 添加人脸数据
/**
* 添加人脸特征数据
* @param lockData 锁数据
* @param featureData 人脸特征值数据
* @param validityInfo 有效期信息,格式同添加人脸
* @param callback 回调函数,返回添加结果
*/
public void addFaceFeatureData(String lockData, String featureData, ValidityInfo validityInfo, AddFaceCallback callback)
- 获取锁上所有有效人脸数据
/**
* 获取锁中所有有效的人脸数据
* @param lockData 锁数据
* @param callback 回调函数,返回所有有效人脸数据
*/
public void getAllValidFaces(String lockData, GetAllFacesCallback callback)
梯控相关接口说明
/**
* 设置梯控工作模式
* @param mode 工作模式
* ActivateAllFloors - 激活所有楼层
* ActivateSpecificFloors - 激活特定楼层
* @param lockData 锁数据
* @param callback 回调函数,返回设置结果
*/
setLiftWorkMode(String mode, String lockData, callback)
/**
* 设置梯控关联的楼层
* @param controlableFloors 可控制的楼层,格式为逗号分隔的字符串,如"1,2,3"表示关联楼层1、2、3
* @param lockData 锁数据
* @param callback 回调函数,返回设置结果
*/
setLiftControlableFloors(String controlableFloors, String lockData, callback)
/**
* 设置梯控可到达的楼层
* @param activateFloors 可达楼层列表,JSON数组字符串格式,如 "[1,2,3]"
* @param currentDate 当前系统时间(时间戳)。传入0,默认使用当前手机时间
* @param lockData 锁数据
* @param callback 回调函数,返回设置结果,包含 battery(电量)、deviceTime(设备时间)、uniqueid(唯一ID)
*/
activateLiftFloors(String activateFloors, long currentDate, String lockData, callback)
**示例:**
```javascript
const floors = "[1,2,3]"; // JSON 数组字符串
TTLock.activateLiftFloors(floors, Date.now(), lockData, (result) => {
if (result.status === 1) {
console.log('电量:', result.battery);
console.log('设备时间:', result.deviceTime);
console.log('唯一ID:', result.uniqueid);
}
});
## IP设置相关接口
/**
- 配置IP设置
- @param ipSets IP设置对象
- {
- type: 0或1, // 0-固定IP, 1-DHCP自动获取IP地址
- ipAddress: "192.168.1.100", // 静态IP地址
- subnetMask: "255.255.255.0", // 子网掩码
- router: "192.168.1.1", // 默认网关
- preferredDns: "8.8.8.8", // 首选DNS
- alternateDns: "8.8.4.4" // 备用DNS
- }
- @param lockData 锁数据
- @param callback 回调函数,返回配置结果
*/
configIp(Object ipSets, String lockData, callback)
遥控器相关接口
扫描遥控器
/**
* 扫描遥控器
* @param callback 回调函数,返回扫描到的遥控器信息
*/
scanRemote(callback)
示例:
TTLock.scanRemote((result) => {
if (result.status === 1) {
console.log('扫描到遥控器:', result);
console.log('遥控器MAC:', result.remoteMac);
} else {
console.error('扫描失败:', result.errorMsg);
}
});
停止扫描遥控器
stopScanRemote()
添加遥控器
/**
* 添加遥控器
* @param remoteMac 遥控器MAC地址(通过扫描获得)
* @param validityInfo 有效期信息对象
* 示例1(按时间范围):
* {
* modeType: 1,
* startDate: 1742059885286, // 开始时间戳
* endDate: 1743059885286 // 结束时间戳
* }
*
* 示例2(指定周期):
* {
* modeType: 4,
* cyclicConfigs: [
* {
* weekDay: 1, // 周一
* startDate: 1742059885286,
* endDate: 1743059885286
* }
* ]
* }
* @param lockData 锁数据
* @param callback 回调函数,返回添加结果
*/
addRemote(String remoteMac, Object validityInfo, String lockData, callback)
示例:
const validityInfo = {
modeType: 1,
startDate: Date.now(),
endDate: Date.now() + 365*24*60*60*1000 // 一年后
};
TTLock.addRemote(remoteMac, validityInfo, lockData, (result) => {
if (result.status === 1) {
console.log('添加遥控器成功');
} else {
console.error('添加失败:', result.errorMsg);
}
});
修改遥控器有效期
注意:仅 Android 平台支持此方法
/**
* 修改遥控器有效期
* @param remoteMac 遥控器MAC地址
* @param validityInfo 新的有效期信息,格式同添加遥控器
* @param lockData 锁数据
* @param callback 回调函数,返回修改结果
*/
modifyRemoteValidityPeriod(String remoteMac, Object validityInfo, String lockData, callback)
示例:
const newValidityInfo = {
modeType: 1,
startDate: Date.now(),
endDate: Date.now() + 180*24*60*60*1000 // 半年后
};
TTLock.modifyRemoteValidityPeriod(remoteMac, newValidityInfo, lockData, (result) => {
if (result.status === 1) {
console.log('修改成功');
} else {
console.error('修改失败:', result.errorMsg);
}
});
删除遥控器
/**
* 删除遥控器
* @param remoteMac 遥控器MAC地址
* @param lockData 锁数据
* @param callback 回调函数,返回删除结果
*/
deleteRemote(String remoteMac, String lockData, callback)
示例:
TTLock.deleteRemote(remoteMac, lockData, (result) => {
if (result.status === 1) {
console.log('删除遥控器成功');
} else {
console.error('删除失败:', result.errorMsg);
}
});
清空所有遥控器
/**
* 清空锁中所有遥控器
* @param lockData 锁数据
* @param callback 回调函数,返回清空结果
*/
clearRemote(String lockData, callback)
示例:
TTLock.clearRemote(lockData, (result) => {
if (result.status === 1) {
console.log('清空成功');
} else {
console.error('清空失败:', result.errorMsg);
}
});
初始化遥控器
/**
* 初始化遥控器
* @param remoteMac 遥控器MAC地址
* @param lockData 锁数据
* @param callback 回调函数,返回初始化结果
*/
initializeRemote(String remoteMac, String lockData, callback)
获取遥控器系统信息
/**
* 获取遥控器系统信息
* @param remoteMac 遥控器MAC地址
* @param callback 回调函数,返回系统信息
*/
getRemoteSystemInfo(String remoteMac, callback)

收藏人数:
https://github.com/z448401921
购买(
试用
使用 HBuilderX 导入示例项目
赞赏(1)
下载 511
赞赏 0
下载 12516
赞赏
京公网安备:11010802035340号