懒人精灵 快速接入
华网网络验证提供了官方的 懒人精灵封装库,方便 懒人精灵开发者接入。
接入须知
获取方式
下载地址:https://wwds.lanzouq.com/b058v0q1c 密码:9jaf
或者加群839808671在群文件下载SDK,有问题也可在此群交流。
使用方式
将压缩包解压出来后 右键点击你的懒人精灵项目的插件目录》添加》已有项》找到解压目录选择HWSDK.luae
然后在脚本中通过 require("HWSDK") 引入。
一个示例:
--初始化
require("HWSDK")
HWSDK.debug=true;
HWSDK.init("AppKey","AppSecret")
--验证异常回调函数
HWSDK.onHeartbeatFailed(function (hret)
print("验证异常信息:"..hret.code)
print("验证异常信息:".. hret.message)
if hret.code == 10207 then
setTimer(exitScript,10) -- 退出脚本
sleep(2000)
end
print("心跳失败,2s后尝试重登...")
sleep(2000)
local ret=HWSDK.cardLogin()
if ret.code~=0 then
print(ret.message)
toast(ret.message,0,0,12)
setTimer(exitScript,10) -- 退出脚本
else
print( "重登成功")
end
end)
--懒人官方 结束与异常回调函数
setStopCallBack(function(error)
if error then
print("脚本异常结束了!!!")
else
print("脚本正常结束了!!!")
end
HWSDK.cardLogout()
end)
--设置卡密
HWSDK.setCard("卡密")
--登录卡密
local ret=HWSDK.cardLogin()
if ret.code~=0 then
print(ret.message)
toast(ret.message)
setTimer(exitScript,10) -- 退出脚本
end
--[[
--完整登录信息包
toast(string.format("卡类:%s\n过期时间:%s\n过期时间戳:%d\n卡密配置:%s\n是否是试用:%s",
HWSDK.loginRet.cardType, HWSDK.loginRet.expires, HWSDK.loginRet.expiresTs, HWSDK.loginRet.config, HWSDK.is_trial)
)]]--
print("卡类型",HWSDK.loginRet.cardType)
print("卡密到期时间",HWSDK.loginRet.expires)
--hold主线程不要退出,记得删除,后面是你的代码
while true do
local ret = HWSDK.getHeartbeatResult();
print("心跳结果: " , ret.code);
sleep(5000)
end
热更新(例子)
一个示例:
--初始化
require("HWSDK")
HWSDK.debug=true;
HWSDK.init("AppKey","AppSecret")
--本地版本
local version="v1.0.0"
--热更新回调函数
function updateCallback (callback)
if callback <0 then
print("更新进度:0%")
toast("更新进度:0%",0,0,12)
else
print("更新进度:"..callback.."%")
toast("更新进度:"..callback.."%",0,0,12)
end
end
--比对版本号 留空则默认返回发布版本
local ret=HWSDK.getSoftwareLatestVersion(version)
--code 是0 就是有新版本
if ret.code==0then
--更新完毕是否重启脚本
local isRestartScript=true
--执行热更新下载
local upRet=HWSDK.updateScript(ret,isRestartScript,updateCallback)
--判断是否下载成功
if upRet.code==0 then
print("更新成功")
toast("更新成功",0,0,12)
else
print("更新失败:",upRet.message)
toast("更新失败:"..upRet.message,0,0,12)
end
end
可更改变量
- HWSDK.debug : bool型,默认为true,开启后会在控制台输出每次请求的详细信息,方便调试
- HWSDK._device_id: string型,设备号默认会自动获取,不建议修改。如果你有更好的一机一码的生成方案,可在初始化后修改该值
可获取变量
TIP
注意
以下变量都为登录成功后才能取到值的。
- HWSDK.loginRet.cardType : 卡密类型,例如:月卡
- HWSDK.loginRet.expires : 过期时间,例如:2024-02-14 19:44:20
- HWSDK.loginRet.expiresTs : 过期时间戳,例如:1702780478
- HWSDK.loginRet.config : 卡密或用户配置,开发者可通过接口自定义的
- HWSDK.is_trial : 是否是试用登录
TIP
注意
调用中文函数时返回false。
- HWSDK._errRet: 可用此变量获取错误信息 ojb类型{ "code": 0, "message": "无报错信息" }
初始化
init
语法
HWSDK.init("AppKey","AppSecret")
初始化卡密
语法
HWSDK.setCard(card)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
card | 是 | string | 用户填写的卡密(长度不超过45位) |
初始化用户账号
语法
HWSDK.setUser(username, password)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度1-20位) |
password | 是 | string | 用户密码(长度6-30位) |
获取时间戳(网络时间)
语法
let timestamp = hw.getTimestamp()
参数
无
返回值
数字类型,例:1703870486
获取心跳结果
语法
let ret = hw.getHeartbeatResult()
参数
无
返回值
Object类型,例:{"code": 0, "message": "","data":null}
获取剩余时长
语法
local ret = HWSDK.getTimeRemaining()
参数
无
返回值
数字类型,剩余多少秒,例:9000
卡密登录
:::tip
注意
调用此接口前需调用 HWSDK.setCard(card) 初始化卡密
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 HWSDK.getHeartbeatResult() 获取当前心跳结果。
:::
语法
local ret = HWSDK.CardLogin()
参数
无
返回值
Object类型,例:参考接口返回
卡密退出登录
语法
local ret = HWSDK.cardLogout()
参数
无
返回值
英文:Object类型,例:{"code": 0, "message": "OK"}
卡密解绑设备
:::tip
注意
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口只能在卡密登录后调用。更多说明
:::
语法
local ret = HWSDK.cardUnbindDevice()
参数
无
返回值
Object类型,例:{"code": 0, "message": "OK"}
卡密设置解绑密码
:::tip
说明
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该密码用于绑定设备丢失或者其它原因导致无法在老设备登录时解绑设备。
:::
语法
local ret = HWSDK.setCardUnbindPassword(password)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
password | 是 | string | 解绑密码(6-10位数字和字母组合的字符串) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
卡密通过密码解绑设备
:::tip
说明
请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。
该接口用于绑定设备丢失或者其它原因导致无法在老设备登录时,通过解绑密码解绑设备。
:::
语法
local ret = HWSDK.cardUnbindDeviceByPassword(password)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
password | 是 | string | 解绑密码(6-10位数字和字母组合的字符串) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
卡密充值(以卡密充卡密)
语法
local ret = HWSDK.cardRecharge(card, useCard)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
card | 是 | string | 被充值的卡密(长度不超过45位) |
useCard | 是 | string | 充值使用的卡密(长度不超过45位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
用户注册(通过卡密)
语法
local ret = HWSDK.userRegister(username, password, card)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
password | 是 | string | 用户密码(长度6-30位) |
card | 是 | string | 注册使用的卡密(长度不超过45位) |
返回值
Object类型,例:{"code": 0, "message": "ok"}
用户登录
:::tip
注意
调用此接口前需调用 HWSDK.setUser(username, password) 初始化用户账号密码
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
开发者只需在自己的脚本中通过调用 HWSDK.getHeartbeatResult() 获取当前心跳结果。
:::
语法
local ret = HWSDK.userLogin()
参数
无
返回值
Object类型,例:参考接口返回
用户退出登录
语法
local ret = HWSDK.userLogout()
参数
无
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
用户修改密码
语法
local ret = HWSDK.userChangePassword(username, password, newPassword)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
password | 是 | string | 当前密码(长度6-30位) |
newPassword | 是 | string | 新密码(长度6-30位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
用户充值(通过卡密)
语法
local ret = HWSDK.userRecharge(username, card)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
username | 是 | string | 用户名(长度不能超过20位) |
card | 是 | string | 充值使用的卡密(长度不超过45位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
试用登录
:::tip
注意
登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。
只需在自己的脚本中通过调用 HWSDK.getHeartbeatResult() 获取当前心跳结果。
:::
语法
local ret = HWSDK.trialLogin()
参数
无
返回值
Object类型,例:参考接口返回
试用退出登录
语法
local ret = HWSDK.trialLogout()
参数
无
返回值
Object类型,例:{"code": 0, "message": "OK"}
获取卡密配置
:::tip
注意
调用此接口前需调用 HWSDK.setCard(card) 初始化卡密
:::
语法
local ret = HWSDK.getCardConfig()
参数
无
返回值
Object类型,例:参考接口返回
更改卡密配置
:::tip
注意
调用此接口前需调用 HWSDK.setCard(card) 初始化卡密
:::
语法
local ret = HWSDK.updateCardConfig(config)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
config | 是 | string | 自定义配置(长度不能超过512位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
获取用户配置
:::tip
注意
调用此接口前需调用 HWSDK.setUser(username, password) 初始化用户账号密码
:::
语法
local ret = HWSDK.getUserConfig()
参数
无
返回值
Object类型,例:参考接口返回
更改用户配置
注意
调用此接口前需调用 HWSDK.setUser(username, password) 初始化用户账号密码
语法
local ret = HWSDK.updateUserConfig(config)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
config | 是 | string | 自定义配置(长度不能超过512位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
获取软件配置
语法
local ret = HWSDK.getSoftwareConfig()
参数
无
返回值
Object类型,例:参考接口返回
中文:返回字符串
获取软件公告
语法
local ret = HWSDK.getSoftwareNotice()
参数
无
返回值
Object类型,例:参考接口返回
获取软件最新版本
语法
local ret = HWSDK.getSoftwareLatestVersion(current_ver)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
current_ver | 否 | string | 当前本地的版本(长度不能超过30位)空默认返回 发布版本 |
返回值
Object类型,例:参考接口返回
远程变量
获取远程变量
语法
local ret = HWSDK.getRemoteVar(key)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名(长度不能超过64位) |
返回值
Object类型,例:参考接口返回
设置远程变量
语法
local ret = HWSDK.updateRemoteVar(key, value)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
value | 是 | string | 远程变量值value(长度不能超过60000位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
中文:bool类型 返回 treu 或 fasle
创建远程变量
语法
local ret = HWSDK.createRemoteVar(key,value)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
value | 是 | string | 远程变量值value(长度不能超过60000位) |
返回值
Object类型,例:参考接口返回
删除远程变量
语法
local ret = HWSDK.delocaleRemoteVar(key)
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
key | 是 | string | 远程变量名key(长度不能超过64位) |
返回值
Object类型,例:{"code": 0, "message": "OK"}
调用远程函数
语法
local ret = HWSDK.callRemoteFunc(funName, params)
示例
远程函数为:
function add(a, b) {
return a + b;
}
脚本中调用:
local ret = HWSDK.callRemoteFunc("add", {1, 2})
if (ret.code == 0) {
print(ret.data["result"]);
} else {
print(ret.message);
}
参数
参数名 | 必传 | 类型 | 参数说明 |
---|---|---|---|
funName | 是 | string | 远程函数名(长度不能超过64位) |
params | 是 | array | 参数列表,例:Array(1, 2) |
返回值
Object类型,例:{"code": 0, "message": "OK", "data": {"result": 3}}
其他功能
获取模块版本
语法
local ret = HWSDK.getSdkVersion()
local ret = HWSDK.获取模块版本()
返回值
字符串 例:v1.0.0
关闭自动心跳
语法
HWSDK.setAutoHeartbeat(false) //true 为开启 false 为关闭
设置心跳周期
语法
HWSDK.setHeartbeatGap(120) //默认 120秒 请勿低于60s一次!