[关闭]
@xxtouch 2018-04-22T11:27:18.000000Z 字数 135989 阅读 123973

XXTouch iOS 开发手册

XXTouch


Windows 平台按 Ctrl + F 可以输入文字搜索

Mac 平台按 command + F 可以输入文字搜索


关于 XXTouch

XXTouch 使用 Lua 作为脚本语言,支持 Lua 5.3 版的所有语法与基本函数,并于其基础之上添加了一些扩展功能, 用于取色、找色、发送触摸、键盘事件等高级功能的实现。XXTouch 仅支持 UTF-8 编码的脚本。


如何阅读本手册








如何使用 XXTouch

售前及安装答疑

用户使用图文说明

普通用户交流 QQ 群 (483853614)

开发相关及交流 QQ 群 (40898074)







脚本及相关资源存在设备的哪个位置?







保护脚本,正确接受 require







基本控制函数











开发辅助函数





屏幕模块(screen)

































模拟触摸模块(touch)

























模拟按键模块(key)









示例及支持的键码列表







模拟重力加速计模块(accelerometer)

















系统模块(sys)



































剪贴板模块(pasteboard)









对话框模块(dialog)













































清理模块(clear)























应用程序模块(app)











































app 模块 额外说明

Process Identifier(进程标识符)为应用运行期的进程号,是个整数,每次运行都不一样







设备相关模块(device)























































































图片对象模块(image)

































































进程字典

























线程模块(thread)

thread 模块使用 Lua 自带协程(coroutine)模块实现,非通常意义上的多线程













thread 示例代码

  1. tmid = thread.dispatch( -- 派发一个异步任务
  2. function()
  3. sys.msleep(2700)
  4. sys.toast("这是第 2.7 秒")
  5. end
  6. )
  7. tid = thread.dispatch( -- 派发一个异步任务
  8. function()
  9. sys.msleep(300)
  10. for i=1,10 do
  11. sys.toast("线程 2: "..i)
  12. sys.msleep(1000)
  13. end
  14. sys.toast("应该运行不到这里")
  15. end
  16. )
  17. -- iPhone 5C 双指合拢缩小相册图片示例
  18. thread.dispatch(function() -- 派发一个滑动任务
  19. touch.on(59,165)
  20. :move(297,522)
  21. :msleep(500)
  22. :off()
  23. end)
  24. thread.dispatch(function() -- 再派发一个滑动任务
  25. touch.on(580,1049)
  26. :move(371,1049)
  27. :msleep(500)
  28. :off()
  29. end)
  30. proc_queue_clear("来自远方的消息")
  31. eid = thread.register_event( -- 注册监听字典状态有值事件
  32. "来自远方的消息",
  33. function(val)
  34. sys.toast("收到消息:"..val)
  35. end
  36. )
  37. sys.msleep(300)
  38. thread.wait(tmid)
  39. for i=1,10 do
  40. sys.toast("线程 1: "..i)
  41. sys.msleep(400)
  42. end
  43. thread.kill(tid) -- 杀死 线程 2
  44. thread.unregister_event("来自远方的消息", eid) -- 取消一个字典状态有值事件
  45. sys.toast("完了")

:上述代码中使用了非本章函数及方法 proc_queue_clearsys.msleepsys.toasttouch.on:move:msleep:off







Web 视图模块(webview)











webview 使用示例







扩展 table 模块

table 模块是 Lua 基础模块,XXTouch 在其基础上做了一些扩展。











扩展 string 模块

string 模块是 Lua 基础模块,XXTouch 在其基础上做了一些扩展。



































扩展 string 示例代码

  1. -- 哈希校验
  2. local str = "sozereal"
  3. sys.alert('"'..str..'" 的 16 进制编码为: <'..str:to_hex()..'>')
  4. sys.alert('<'..str:to_hex()..'> 转换成明文为: "'..str:to_hex():from_hex()..'"')
  5. sys.alert('"'..str..'" 的 MD5 值是: '..str:md5())
  6. sys.alert('"'..str..'" 的 SHA1 值是: '..str:sha1())
  7. local binstr = "\0\1\2\3\4\5"
  8. sys.alert('<'..binstr:to_hex()..'> 的 MD5 值是: '..binstr:md5())
  9. sys.alert('<'..binstr:to_hex()..'> 的 SHA1 值是: '..binstr:sha1())
  10. -- 数据加/解密
  11. local msg = "\5\4\3\2\1\0"
  12. local key = "sozereal"
  13. local emsg = msg:aes128_encrypt(key)
  14. local emsgb64 = emsg:base64_encode()
  15. sys.alert('二进制数据<'..msg:to_hex()..'> \n 使用 AES128 算法 密钥 "'..key..'" 加密 值是: <'..emsg:to_hex()..'> \n base64 串为 "'..emsgb64..'"')
  16. local tmp = emsgb64:base64_decode()
  17. msg = tmp:aes128_decrypt(key)
  18. sys.alert('"'..emsgb64..'" base64 解码后的数据为 <'..tmp:to_hex()..'> \n使用 AES128 算法 密钥 "'..key..'" 解密 值是: <'..msg:to_hex()..'>')
  19. -- 字符串小工具
  20. str = " 哈哈,he he,1,3,6 "
  21. new = str:split(",") --将字符串str按照 `,` 分割并返回一个表
  22. sys.alert(new[2])
  23. sys.alert(str:rtrim()) -- 结果 " 哈哈,he he,1,3,6" ,删除字符串尾部的空白字符
  24. sys.alert(str:ltrim()) -- 结果 "哈哈,he he,1,3,6 " ,删除字符串首部的空白字符
  25. sys.alert(str:trim()) -- 结果 "哈哈,he he,1,3,6" ,删除字符串首尾的空白字符
  26. sys.alert(str:atrim()) -- 结果 "哈哈,hehe,1,3,6" ,删除字符串所有的空白字符

:上述代码中使用了非本章函数 sys.alert







! HTTP 模块(http)

当前模块并不支持 HTTP/1.0 或更低版本的 HTTP 协议,需求若无法使用当前模块完成,也可以使用 lcurl 模块 来实现。

















! FTP 模块(ftp)









JSON 模块(json)

JSON (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。详情见:http://www.json.org/

该 JSON 模块 完全等同于 LuaCJSON 扩展库,非原创模块











PLIST 文件读写模块(plist)













小工具模块(utils)





















文件操作模块(file)





































VPN 配置模块(vpnconf)



















云打码模块(cloud_ocr)

















系统回调消息