《ilua》速成开发手册3.0
官方用户交流:
iApp开发交流(1) 239547050
iApp开发交流(2) 103540883
iApp开发交流(3) 216954373
iApp开发交流(4) 334267540
iApp开发交流(5) 207037477
iApp游戏开发交流 375679257
iApp官方开源交流 323924434
【3.0 ilua升级简介】
- 出错后报错信息,显示在调试日志里。
- “null”的表示方式在lua为 “nil”,所以空值写法为 nil
- 融合裕语言代码,写法和使用方式有所不同。
- 入口文件必须为 mian.iyu 如果全部采用此语言开发,可以在入口文件加一个uigo跳转。
- 更多不同点可以自行探索。
【lua语言】
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。
【luajava介绍】
LuaJava项目由 Carlos Cassino 在2004年开发创建,上传开源,并未作出使用限制。以及 Thiago Ponte 作为主要代码贡献者,在2005年和2007年等进行了更新。
iApp引用了他们的项目基础,并进行了升级和修复BUG
[历史资料来源于网络,仅供参考]
【local 变量】
用法:
--申明一个局部变量
local a = "aaa"
tw(a)
--申明一个界面变量,直接赋值不写“local”关键词视为界面变量
b = "bbb"
tw(b)
--注:此全局变量如果等于 空值, 则无法访问,访问将报错。
--通过 is(var) 访问不确定的全局变量,若他不存在或 是空值 不会报错
local abc = is("abc")
syso(abc)
lua变量区域介绍:
局部变量:服务于一个事件,当用户与界面发生交互时,产生一个事件,仅供于该事件的变量产生以及操作。
界面变量:生产界面变量后,同一个界面中的所有事件,均可对其进行操作。
说明:
变量类似一个箱子,你可以把数据储存在里面,等需要的时候就取出来使用,可以改变它装你想要装的数据。裕语言中的变量是可以根据赋值,而且自动转换的,所以无需申明数据类型。
空值:
如果访问一个没有声明的变量,将返回“nil”空值类型,这个不对等于字符的 'nil'。
判断是否空值的例子:(这里我们不知道变量“abc”是否空值)
if(abc == nil)
{
syso("是空值")
}
【s 变量】
用法:
申明界面变量
--可以赋字符串
ss("a", "blss")
--或 设置为空
i:ss("a", nil)
--读取数据
tw(ss("a"))
或 注意,这样写也属于读取
tw(ss("a", nil))
申明全局变量
--可以赋其他变量
sss("a", "blsss")
--或 设置为空
i:sss("a", nil)
--读取数据
tw(sss("a"))
用途:
可用于与iApp支持的其他语言进行交换数据,数据共享,数据储存等。
区域介绍:
界面变量:生产界面变量后,同一个界面中的所有事件,均可对其进行操作。
全局变量:生产全局变量后,同一个应用中的所有事件,均可对其进行操作。
说明:
变量类似一个箱子,你可以把数据储存在里面,等需要的时候就取出来使用,可以改变它装你想要装的数据。语言中的变量是可以根据赋值,而且自动转换的,所以无需申明数据类型。
提示:
自定义的变量名,比如“abc、 nihao、sfw123、www_zzw”变量不允许全部为数字,不允许掺杂符号,请不要使用太长的变量名,不推荐使用中文作为变量名。
空值:
如果访问一个没有声明的变量,将返回“nil”空值类型,这个不对等于字符的 'nil'。
判断是否空值的例子:(这里我们不知道变量“abc”是否空值)
local abc = sss("abc")
f(abc == nil)
{
syso("是空值")
}
【-- 或 --[[ --]] 注释语句】
用法:
--这个是变量“a”它的值等于“1”
local a = 1
--这个是变量“b”它的值等于“2”
local b = 2
--[[
大量代码注释方法
local c = 3
local d = 4
--]]
说明:
注释语句符号可以用“--” 也可以用“--[[ --]]”,以注释符号开头的正行,将会被代码执行器无视。通常用于给自己标示代码的含义
【tos 转为字符串】
用法:
--将 数字 转换字符串
local c = tos(123)
local c = tos(123.23)
--将 是否 转换字符串
local c = tos(true)
--拼接变量打印字符串
local a = "a"
local b = nil
local c = true
syso("如果变量" .. tos(a) .. "等于" .. tos(b) .. "那么就不是" .. tos(c))
【toi 转为整数型】
用法:
--将 小数型 转换为整数型 123
local c = toi(123.23)
--将转换为整数型数据 123
local c = toi(123.23)
说明:
由于lua只有小数类型,没有整数类型,传递到java方法将导致数据类型不匹配。若需要整数型时,使用该方法转换整数型。
【tosz lua数组转为java数组】
用法:
local c = {3,2,4,5,1}
local sz = tosz(c)
【szto java数组转为lua数组】
用法:
local sz = i:sl("12;12;12;12;12", ";")
local c = szto(sz)
【fn 加载mlua模块】
用法:
--加载a.mjs模块
fn("a")
--然后就可以直接,调用a.mjs模块 的 abc 方法
abc()
说明:
用于加载你的模块文件;建议要加载的模块,载入事件加载一次即可。
注意:
加载多模块时,模块方法名,不要过分简单,避免重复;可在不同的模块,所有方法名加前缀或 后缀。
也可以使用require方法加载模块,效果一样。
【syso 打印】
用法:
--打印字符串
syso("wo1314")
--或
i:syso("wo1314")
--打印字符串,字符串拼接
syso("wo" .. "ai" .. "ni")
--或
i:syso("wo" .. "ai" .. "ni")
--拼接变量打印字符串
local a = "a"
local b = nil
syso("变量" .. tos(a) .. "等于" .. tos(b))
可以打印出数据,代码同等于 System.out.println("1314"),可以在测试时,选择 调试日志查看打印数据。
说明:
用于打印调试数据。
【if 判断语句】
用法:
--if 语句的使用
local a = 2
if a > 1 then
syso("a大于1")
end
--if...else 搭配使用
local a = 2
if a == 1 then
syso("a等于1")
elseif a == 2 then
syso("a等于2")
else
syso("a等于其他")
end
--多个if语句嵌套
local a = 1
local b = 2
if a == 1 then
if b == 2 then
syso("a等于1,b等于2")
end
else
syso("a不等于1")
end
--逻辑运算判断
local a = 1
local b = 2
--a等于1 或者 等于2
if a == 1 or a == 2 then
syso("a等于1")
end
--a等于1 并且 b等于2
if a == 1 and b == 2 then
syso("a等于1,b等于2")
end
--a等于3 取反意,与逻辑运算结果相反,如果条件为 true,逻辑非为 false
if not(a == 3) then
syso("a不等于3")
end
--a不等于b 此运算符检测两个值是否相等,相等返回 false,否则返回 true
if a ~= b then
syso("a不等于b")
end
【while 循环】
用法:
--这将循环10次
local a = 10
while a > 0 do
syso(a)
a = a - 1
end
说明:
条件循环语句,比较值的变化,然后进行循环执行里面的代码。当条件为“否”的时候会停止循环,条件“是”的话,将一直循环执行。
支持运算符(返回 是 与 否):(跟 if 语句 一样,请参考)
【for 循环】
用法:
-- 条件: a=初始值,最大值,增长值;a初始为1,设置a最大为10,a每次循环增加1
for a=1,10,1 do
syso("循环10/" .. a)
end
-- 提前跳出循环
for a=1,10,1 do
syso("循环10/" .. a)
if a == 6 then
-- break 语句跳出循环
break
end
end
--设置一个数组
local data = {"a","b","c","d"}
--打印数组;a是记录循环次数,b是每次循环数组值
for a,b in ipairs(data) do
syso(a .. "次 循环:" .. b)
end
说明:
用于多次重复循环操作。
【t 新线程】
用法:
i:t(
function()
syso("新线程里执行代码")
end
)
说明:
启用新线程,去执行一些需要执行很久的代码。比如把下载文件,获取网页源码,大量的文件操作,可以放入新线里执行。这里线程的概念,启用新的线程帮你处理代码,这样不会影响到主线程。
【ssj 设置或修改控件事件代码】
用法:
--设置控件ID3,的单击事件
i:ssj(3, "clicki",{
function(st_vId,st_vW)
syso("ok")
end
})
--设置控件ID3,的触屏滑动事件
i:ssj(3, "onscroll",{
function(st_vId,st_vW,st_sE)
syso("ok")
end
,
function(st_vId,st_vW,st_fM,st_vT,st_bT)
syso("ok")
end
})
说明:
输入控件Id,输入事件类型,并将事件顺序填写在 { 中 },动态控件将触发该事件代码。
事件类型:
clicki=单击事件
【tw 提示】
用法:
tw("你好")
--或
i:tw("你好")
--设置参数1:显示的时间长久;0:显示的时间短暂;\n为换行的意思,其他地方通用
tw("你好\n吗?", 1)
--或
i:tw("你好\n吗?", 1)
说明:
用于提醒用户,界面显示时长大约为 2秒钟。弹出代码中的文字,来提醒用户。
【fd 删除文件】
用法:(将删除SD卡根目录的abc.zip文件)
local b = i:fd("%abc.zip")
syso(b)
说明:
用于删除指定的文件,是否成功返回数据:true或 false
【fe 文件是否存在】
用法:(将判断SD卡根目录的abc.zip文件是否存在)
local b = i:fe("%abc.zip")
syso(b)
说明:
用于判断指定的文件存在,是否存在返回数据:true或 false
【fs 文件大小】
用法:(将获取SD卡根目录的abc.zip文件占用的大小)
local b = i:fs("%abc.zip")
syso(b)
说明:
用于判断指定的文件存在,是否存在返回数值单位(字节)。
转换为KB:
local b = i:fs("%abc.zip")
b = b / 1024
syso(b)
转换为MB:
b = b / 1024 / 1024
【fr 读取文本】
用法:(将读取SD卡根目录的abc.txt文件里面的内容)
local b = i:fr("%abc.txt")
syso(b)
local b = i:fr("%abc.txt", "utf-8")
syso(b)
说明:
用于读取文本文件的数据内容。
……
【fc 复制文件】
用法:(在SD卡根目录abc.txt文件拷贝一个新的副本至abc2.txt)
local b = i:fc("%abc.txt", "%abc2.txt")
syso(b)
--设置重复不覆盖
local b = i:fc("%abc.txt", "%abc2.txt", false)
syso(b)
--将apk包内的 abc.txt 复制到SD卡上
local b = i:fc("@abc.txt", "%abc2.txt")
syso(b)
说明:
用于复制文件,创建一个新的副本文件。是否成功返回数据:true或 false
……
【fw 写入文本】
用法:(将文本数据写入至SD卡根目录的abc.txt文件里面)
local b = "我是一个txt文件的内容"
i:fw("%abc.txt", b)
local b = "我是一个txt文件的内容"
i:fw("%abc.txt", b, "utf-8")
说明:
用于写入文件。
【fl 文件列表】
用法:(获取一个目录的文件列表)
local c2 = i:fl("%dir")
local c = szto(c2)
local cc = #c
--获取总共文件并减去1
local leng = cc - 1
--循环打印
for a=0,leng,1 do
syso("文件 " .. c[a])
end
--仅获取文件夹
local c2 = i:fl("%.estrongs", false)
local c = szto(c2)
local leng = #c
while leng>0 do
leng = leng - 1
syso("文件夹 " .. c[leng])
end
--仅获取文件
local c2 = i:fl("%.estrongs", false)
local c = szto(c2)
local leng = #c
while leng>0 do
leng = leng - 1
syso("文件 " .. c[leng])
end
说明:上面例子是获取sd卡根目录文件夹“dir”里面的所有子目录以及文件,并获取结果返回变量“c”,并用用符合 # 获取变量c 有多少位,然后循环来读取变量“c”里面的列表数据,可以通过c[0]获取第一位,c[1]第二位数据等。
提示:
看似有些复杂,理解了就简单了, 这里的变量“c”类型是一个数组,里面包含了一个数据列表。通过循环可以顺序读取这个列表。
【ft 转移文件】
用法:(将SD卡根目录的abc.txt转移至abc3.txt)
local c = i:ft("%abc.txt", "%abc3.txt")
syso(c)
说明:
用于转移文件。是否成功返回数据:true或 false
【fdir 获取SD卡根目录路径】
用法:(获取根目录路径并赋值至变量“a”)
--获取根目录
local a = i:fdir()
syso(a)
--获取目录的绝对路径
local a = i:fdir("%dir")
syso(a)
说明:
通过获取根目录路径,就可以计算文件的绝对路径。
【fuz 解压zip部分文件】
用法:(将根目录文件abc.apk压缩包里的AndroidManifest.xml文件,解压到根目录AndroidManifest2.xml)
local d = i:fuz("%abc.apk", "AndroidManifest.xml", "%AndroidManifest2.xml")
syso(d)
--解压文件遇到重复不覆盖
local d = i:fuz("%abc.apk", "AndroidManifest.xml", "%AndroidManifest2.xml",false)
syso(d)
说明:
通过上面代码可以实现压缩包解压部分的文件,并返回赋值至变量“d”解压文件的数量。
【fuzs 解压整个zip】
用法:(将根目录文件abc.apk压缩包解压至根目录文件夹abcdir,会自动创建)
local c = i:fuzs("%abc.apk", "%abcdir")
syso(c)
--解压文件遇到重复不覆盖
local c = i:fuzs("%abc.apk", "%abcdir", false)
syso(c)
说明:
通过上面代码将解压整个压缩包至指定文件,并赋值至变量“c”,是否成功返回数据:true或 false
【fj 压缩文件或文件夹至zip】
用法:
local c = i:fj("%adc.txt", "%abc.zip")
syso(c)
--不去除根目录
local c = i:fj("%adc.txt", "%abc.zip",false)
syso(c)
说明:
压缩文件。返回赋值数据:true 或 false
【fo 打开文件】
用法:(将根目录打开安装abc.apk文件)
i:fo("%abc.apk")
说明:
可以调用系统工具打开不同的文件。
【sr 替换字符】
用法:
local a = "123456789"
local b = "456"
local c = "."
local d = i:sr(a, b, c)
--将提示:123.789
syso(d)
--支持正则表达式
--local d = i:sr(a, b, c, true)
说明:
用于替换字符
【sj 截取字符】
用法:
local a = "123456789"
local b = "34"
local c = "8"
local d = i:sj(a, b, c)
--将提示:567
syso(d)
--从头部开始截取
local d = i:sj(a, nil, c)
syso(d)
--截取到尾部
local d = i:sj(a, b, nil)
syso(d)
说明:
用于截取数据部分字符
【sl 数据数组】
用法:
local a = "12;12;12;12;12"
local b = ";"
local c2 = i:sl(a, b)
--可以支持正则表达式;例子看(注意说明)
--local c2 = i:sl(a, b, true)
local c = szto(c2)
--获取数组有多少位
local leng = #c
while leng>0 do
leng = leng - 1
--将打印5次:12
syso(c[leng])
end
说明:
将把变量“a”的字符串,切割成一个数组,以字符“.”为分割字符。并用循环顺序打印出数据。
注意:
如果支持正则表达式数据数组,上例子的 local b = ";" 其内的值。需要转义的特殊字符 “$()*+.[]?^{},|”
支持正则的特殊字符转义方法:
如:
local a = "12|a$12|a$12|a$12|a$12"
--关键分割字符串如果包含特殊字符,需要在每个特殊字符前面增加“\”进行转义
local b = "\|a\$"
local c2 = i:sl(a, b, true)
local c = szto(c2)
--获取数组有多少位
local leng = #c
while leng>0 do
leng = leng - 1
--将打印5次:12
syso(c[leng])
end
【siof 获取字符位置】
用法:
local a = "123456789"
local b = "3"
local c = 0
local d = i:siof(a, b, c)
--将提示:2
syso(d)
local a = "123456789"
local b = "3"
local d = i:siof(a, b)
--将提示:2
syso(d)
说明:
从前面向后面进行匹配。字符位置以0计算,若无数据找到将返回 -1
【slof 获取字符位置】
用法:
local a = "123456789"
local b = "4"
local c = 8
local d = i:slof(a, b, c)
--将提示:3
syso(d)
local a = "123456789"
local b = "4"
local c = i:slof(a, b)
--将提示:3
syso(c)
说明:
从后面向前面进行匹配。字符位置以0计算,若无数据找到将返回 -1
【ssg 截取字符】
用法:
local a = "abcdefghijk"
local b = i:ssg(a, 2, 6)
--将提示:cdef
syso(b)
local a = "abcdefghijk"
local b = i:ssg(a, 6)
--将提示:ghijk
syso(b)
说明:
根据字符的位置进行截取字符,若失败将变量“b”赋值 nil
【slg 获取字符长度】
用法:
local a = "123456789"
local b = i:slg(a)
--将提示:9
syso(b)
说明:
顾名思义。
【strim 去除头尾空格】
用法:
local a = " 123456789 "
local b = i:strim(a)
--将提示:123456789
syso(b)
说明:
常用于去除后进行判断头尾字符。
【slower 转换为小写】
用法:
local a = "AiufSUscN"
local b = i:slower(a)
--将提示:aiufsuscn
syso(b)
说明:
常用于转换为小写后进行判断。
【supper 转换为大写】
用法:
local a = "AiufSUscN"
local b = i:supper(a)
--将提示:AIUFSUSCN
syso(b)
说明:
常用于转换为大写后进行判断。
【stop 暂停代码】
用法:
i:t(
function()
syso("1")
i:stop(1000)
syso("2")
i:stop(1000)
syso("3")
i:stop(1000)
syso("4")
end
)
说明:
每次执行 i:stop(1000) 将暂停1秒后,再执行下面代码。单位为毫秒:1000毫秒 = 1秒
【sran 生产范围随机数】
用法:(生产一个 100 至 1000的随机数)
local a = i:sran(100, 1000)
syso(a)
说明:
有时候需要利用到随机机制,可以利用这个来开发!
【nsz 创建数组】
用法:
--声明6位的数组
local a2 = i:nsz(6)
syso(i:sgszl(a2))
或
//指定数组数据类型
local a2 = nsz(6, "String")
--声明数组,并直接设置数组值
local a2 = i:nsz({ 1, 2, 3, 4, 5 })
--打印数组总行数
local leng = i:sgszl(a2)
syso(leng)
--设置数组值
a[0] = 3 --设置第一位
a[1] = 6 --设置第二位
--循环打印数组所有
local leng = i:sgszl(a2)
local a = szto(a2)
while leng>0 do
leng = leng - 1
syso(a[leng])
end
说明:
申明一个数组。并且设置数组
【sgsz 指定访问数组维数】
用法:(根据序号访问数组)
local a = i:nsz({ 1, 2, 3, 4, 5 })
local d = i:sgsz(a, 2)
tw(d)
说明:
数组可以进行列表形式存储数据,常用于数据列表。注意的是序号是从0开始的。数组总行数如果是5,那序号最大为4
【sssz 设置数组数据】
用法:
local a = i:nsz({ 1, 2, 3, 4, 5 })
local c = 1
local d = 9
i:sssz(a, c, d)
说明:
指定数组序号设置数组的数据。
【sgszl 访问数组总行数】
用法:
local a = i:nsz({ 1, 2, 3, 4, 5 })
local d = i:sgszl(a)
tw(d)
说明:
可以获取到长度,更准确的访问数组
【hs 获取网页源码】
用法:
i:t(
function()
local a = "http://wap.baidu.com/"
local b = i:hs(a)
syso(b)
end
)
2,提交post数据:
输入说明:地址,post数据提交,目标网页编码
i:t(
function()
local a = "http://wap.baidu.com/"
local b = i:hs(a, "title=你好&text=你好吗?", "utf-8")
syso(b)
end
)
3,带自定义cookie方式获取网页:
--传递cookie项值,格式为nama=value 下例: uid=112;name=nihao;sb=123456789;
i:t(
function()
local a = "http://wap.baidu.com/"
local b = i:hs(a, "title=你好&text=你好吗?", "utf-8", "uid=112;name=nihao;sb=123456789;")
syso(b)
end
)
4,带自动设置cookie方式获取网页,并记录当前网页的Cookie:
--传递cookie项值,当自定义为nil 系统将自动设置已记录的cookie
i:t(
function()
local a = "http://wap.baidu.com/"
local b = i:hs(a, "title=你好&text=你好吗?", "utf-8", nil, true)
syso(b)
end
)
5,带自动设置cookie方式获取网页,并记录当前网页的Cookie,并设置Header头:(可设置多条,以“||”隔开)文件头包括了Cookie,User-Agent设备型号。
--传递cookie项值,当自定义为nil 系统将自动设置已记录的cookie
i:t(
function()
local a = "http://wap.baidu.com/"
local b = i:hs(a, "title=你好&text=你好吗?", "utf-8", nil, true, "User-Agent=Mozilla/5.0 (iPad; U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2)||accept=/||accept-language=zh-CN")
syso(b)
end
)
6,带自动设置cookie方式获取网页,并记录当前网页的Cookie,并设置Header头:(可设置多条,以“||”隔开)文件头包括了Cookie,User-Agent设备型号,设置连接超时,设置接收超时,设置代理IP。
--传递cookie项值,当自定义为nil 系统将自动设置已记录的cookie
i:t(
function()
local a = "http://wap.baidu.com/"
local b = i:hs(a, "title=你好&text=你好吗?", "utf-8", nil, true, "User-Agent=Mozilla/5.0 (iPad; U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2)||accept=/||accept-language=zh-CN", 20000, 20000, "10.0.0.172:80")
syso(b)
end
)
7,应用系统存储Cookie的浏览查看,返回赋值变量为字符串
local b = i:hs("cookie")
8,应用系统存储Cookie的清空,无赋值变量
i:hs("del cookie")
说明:
这里先开了一个线程,然后在线程里执行获取网页源码的工作,开线程是担心有些主线程界面。大部分网页都需要使用cookie登陆,可使用工具查询所需cookie然后进行操作。
设置cookie有说明作用?
1.登陆用户名
2.获取验证码图片并发送验证码
....
【hd 下载文件】
用法:(下载文件至SD卡根目录 abc.apk)
1,下载文件,默认不覆盖重复
i:t(
function()
local a = "http://abc.com/abc.apk"
local b = "abc.apk"
local c = i:hd(a, b)
syso(c)
end
)
2,设置重复是否覆盖
i:t(
function()
local a = "http://abc.com/abc.apk"
local b = "abc.apk"
local c = i:hd(a, b, true)
syso(c)
end
)
3,带自动设置cookie方式下载网页形式文件(如图片形式验证码,论坛的附件等),支持post数据,自定义Cookie或系统设置Cookie,并记录当前网页的Cookie,并设置重复是否覆盖。可参考hs获取网页,并设置Header头:(可设置多条,以“||”隔开,也可留空为nil)
输入说明:下载地址,保存文件位置,是否重复覆盖,post数据提交,目标网页编码,自定义Cookie,是否系统自动设置Cookie,设置Header头
i:t(
function()
local a = "http://abc.com/abc.apk"
local b = "abc.apk"
local c = i:hd(a, b, true, "title=你好&text=你好吗?", "utf-8", nil, true, nil)
syso(b)
end
)
说明:
开个线程,然后在里面下载一个文件。并存到SD卡。下载结果将赋值到变量“c”
返回的赋值:
1 文件已经存在
0 下载成功
-1 下载失败
【hw 访问网页】
用法:
local a = "http://wap.baidu.com/"
i:hw(a)
说明:
使用内置浏览器访问网页。
可用于下载文件:
local a = "http://abc.com/abc.apk"
hw(a)
--跳转访问网页,并且自定义标题栏颜色
--主体颜色
local b = "#387bd6"
--底部横杠颜色
local c = "#255eab"
i:hw("http://wap.baidu.com/", b, c)
【hws 系统浏览器访问网页】
用法:
local a = "http://wap.baidu.com/"
i:hws(a)
说明:
使用内置浏览器访问网页。
可用于下载文件:
local a = "http://abc.com/abc.apk"
i:hws(a)
【ug 获取控件属性】
用法:(1为:控件ID,第二个参数为控件属性标识,然后赋值到变量)
local a = i:ug(1, "text")
syso(a)
说明:
输入属性标示来返回不同的控件数据。注意:有些控件没有指定属性,将返回nil。下面有属性介绍,可参考。
可用属性标识:
text=内容、background=背景、width=宽度、height=高度、x=X轴、y=Y轴、paddingleft=左内边距、paddingtop=顶内边距、paddingright右内边距、paddingbottom=底内边距、layout_marginleft=左外边距、layout_margintop=顶外边距、layout_marginright=右外边距、layout_marginbottom=底外边距、
hint=提示字符、imeoptions=虚拟键盘按键状态、visibility=控件可视状态、checked=选项是否被选中、title=浏览器网页标题、url=浏览器网址、lastvisibleposition=列表滑动到项目位置的序号、count=列表项目总数、
selecteditem=获取下拉框选值、rating=评分当前数值、progress=控件当前进度数值、date=日期控件选值、time=时间控件选值、currentitem=获得滑动窗体界面序号、isdraweropen=侧滑是否界面展开状态、selectionstart=获取文本框光标开始位置、selectionend=获取文本框光标结束位置、
cangoback=是否存在可返回的网页、cangoforward=是否存在可前进的网页、collapsecolumns=表格布局获取指定列是否折叠、shrinkcolumns=表格布局获取指定的列是否可收缩、stretchcolumns=表格布局获取指定的列是否可拉伸、shrinkcolumnsall=表格布局获取指示是否所有的列都是可收缩的、
stretchcolumnsall=表格布局获取指示是否所有的列都是可拉伸的
【us 设置控件属性】
用法:(1为:控件ID,第二个参数为控件属性标识,第三个是需要设置的数据或变量)
--设置文本控件内容
local c = "文本内容"
local f = i:us(1, "text", c)
syso(f)
--设置浏览器的连接url
local c = "http://wap.baidu.com/"
local f = i:us(2, "url", c)
--提示:如果浏览器正在播放视频或音乐,直接关闭浏览器可能还会有声音,建议关闭浏览器时先跳转成另一个网页。
--提示:如果需要加载本地的文件,可以 us(2, "url", "file:///android_asset/res/web.html") 加载安装包内assets/res/web.html文件
syso(f)
--设置浏览器显示的html文件或文本
s c = "<html><p>html内容</></html>"
s d = "utf-8"
s e = "text/html"
local f = i:us(2, "url", c, d, e)
syso(f)
--设置浏览器代理IP
local f = us(2, "proxy", "10.0.0.172", "80")
syso(f)
--设置控件阴影(部分控件有效果如文本、文本框、按钮)
local radius = 5
local dx = 0
local dy = 0
local color = "#000000"
local f = us(2, "shadow", radius, dx, dy, color)
syso(f)
--带有赋值变量,将返回数据是否设置成功 true 或 false
local c = "文本内容"
us(1, "text", c)
--设置文本框控件光标
us(1, "selection", 1)
--选中文本框部分内容
us(1, "selection", 1, 3)
--浏览器前进1个网页
us(1, "gobackorforward", 1)
--浏览器后退1个网页
us(1, "gobackorforward", -1)
--设置控件点击波纹效果颜色;需系统5.0以及以上才有效果;部分控件还需要设置 clickable=true 才有效果。
us(1, "backgroundripple", "#888888")
--设置编辑框光标颜色
us(1, "textcursordrawable", "#000000")
说明:
输入控件标示设置控件数据。【可参照控件属性,所有属性标识通用】
更多属性标识:
currentitem=设置滑动窗体界面序号、closedrawer=关闭指定侧滑、opendrawer=展开指定侧滑、drawerlockmode=设置手势滑动、selection=设置文本框光标位置、gobackorforward=浏览器的前进或推后、backgroundripple=波纹效果、dh=执行动画(非队列动画)
【uigo 跳转界面】
用法:(输入界面文件名,跳转指定的界面)
i:uigo("abc.ilua")
--带参数的跳转
i:uigo("abc.ilua", 536870912)
说明:
可以界面之间的转换,扩展新的界面。
参数:
67108864:如果在内存中发现存在该界面,则清空这个界面之上的所有其他界面,使其处于栈顶。
268435456:系统会寻找或创建一个新的内存来放置该界面
1073741824:跳转到的界面,不排在内存中
536870912:当内存中存在该界面并且位手机的显示状态时,不再创建一个新的,直接利用这个界面。
【utw 弹出界面】
用法:(在原有的界面弹出界面)
local a = nil
local b = "界面标题"
local c = "界面内容"
local d = "退出"
local e = "保存"
local f = "取消"
--三个按钮
--输入图标,输入标题,输入内容,输入按钮名称,输入按钮名称,输入按钮名称,输入是否点击弹窗以外界面是否关闭弹窗
i:utw(a, b, c, d, e, f, false,
function()
syso("点击了确定")
end
,
function()
syso("点击了保存")
end
,
function()
syso("点击了取消")
end
)
--两个按钮
i:utw(a, b, c, d, e, false,
function()
syso("点击了确定")
end
,
function()
syso("点击了取消")
end
)
-- 一个按钮
i:utw(a, b, c, d, false,
function()
syso("点击了确定")
end
)
--没有按钮
i:utw(a, b, c, false)
--将界面添加到弹窗界面上,直接将界面内容设为一个界面文件
local a = "界面标题"
local b = "a.ilua"
local c = "取消"
--返回界面对象,设置为全局变量 v
v = i:utw(nil, a, b, c, false,
function()
syso("点击了取消")
--获取全局变量 v
local v = is("v")
syso(v)
end
)
说明:
常用于询问用户当前的操作,弹窗展示内容。
赋值变量说明:
弹出界面需要赋值到一个变量,用于自定义界面弹窗的操作。
【endutw 关闭弹出界面】
用法:
i:endutw()
说明:
用于关闭当前打开的弹窗界面
【end 结束界面】
用法:
i:end()
说明:
调用后,将结束当前的界面。 并返回原来的界面。如果原来没有界面,将退出应用。
【ends 显示桌面】
用法:
i:ends()
说明:
跳转到手机的桌面,程序将后台运行。
【bfm 播放音频】
用法:
local a = "http://www.abc.com/abc.mp3"
local b = i:bfm(a)
local a = "%abc.mp3"
local b = i:bfm(a)
-- 播放
-- i:bfms(b, "st")
-- 暂停
-- i:bfms(b, "pe")
-- 停止
-- i:bfms(b, "sp")
-- 结束播放组件
-- i:bfms(b, "re")
-- 是否在播放
-- i:bfms(b, "ip", c)
-- tw(c)
-- 获取音频时长(毫秒)
-- i:bfms(b, "dn", c)
-- tw(c)
-- 获取当前播放时长(毫秒)
-- i:bfms(b, "cn", c)
-- tw(c)
-- 指定播放的位置(毫秒)
-- i:bfms(b, "seekto", 2000)
-- 设置音量(0-100)
-- i:bfms(b, "volume", 100, 100)
-- 一直循环播放
-- i:bfms(b, "sl", true)
说明:
可以直接访问安装包里面的音频文件,也可以访问sd卡上的。
……
【html 标签支持】
用法:
local a = "(html)<a href="http://wap.baidu.com">百度</a>"
i:us(1, "text", a)
说明:
text属性:设置支持html代码!
【ula 列表操作内容】
用法:
--输入数据列表对象,输入数据项...不限制数量。
local a
a = i:ula(a, {1,2,3}, {"abc","bac","bbc"})
--刷新列表显示内容,常用增加数据后的刷新。
i:ula(a)
--清空列表对象
i:ula(a, nil)
--i:ula(a, "clear")
--获得列表对象,赋值返回v变量为列表对象
local v = i:ula(a, "list")
说明:
根据数据列表,进行增加数据。
提示:
1 abc,其中1为控件id,abc为设置控件值
其中所谓的控件,为a.iyu界面中的控件。
增加标识数据,不作为设置控件数据,可在标识处设负数。如下:
-1 abc
提示:
如果需要设置 单选控件、多选控件 的选择状态,可设值为 true 或 false
注意:
将要执行事件的控件,必须在此设置值。如你有一个按钮控件无需设置值,但需要使用事件,可设置 1=nil
不设置值的控件,将无法获取列表内容数据。
【uls 列表显示内容】
用法:
--
local a
a = i:ula(a, {1,2,3}, {"abc","bac","bbc"})
a = i:ula(a, {1,2,3}, {"cde","cdw","cad"})
local c = "a.ilua"
local d = -1
local e = -2
--输入控件id或控件对象,输入数据列表,输入列表项界面文件名,输入界面宽度,输入界面高度
i:uls(1, a, c, d, e)
--设置下拉选择列表
--输入控件id或控件对象,输入数据列表或数组数据
i:uls(1, {"abc","bac","bbc"})
说明:
设置列表控件、视图控件、下拉列表的数据。
注意:
列表控件、视图控件 设置的界面 a.ilua 其中的载入事件是允许被调用。
可以通过列表控件、视图控件 设置的界面 a.ilua 的载入事件,进行每项列表布局的个性化设计。
每当显示到每项列表内容就会调用一次此载入事件,并且将该项的布局控件赋值给 st_vW 变量对象,
然后可以通过 local b = i:gvs(st_vW, "a.2") 获取其中的子控件对象,然后进行操作子控件即可。
还可以通过 st_pN 获取当前的视图中的序号,方便判断目前操作的是那一个视图。
【ulag 获取列表内容数据】
用法:
--输入当前的控件对象,输入获取控件ID 1的数据参数
local b = i:ulag(a, 1)
--输入当前的控件对象,输入获取标识为 -1的数据参数
local b = i:ulag(a, -1)
--通过 数据列表对象 或 列表控件对象 获取数据
--输入数据列表对象 或 列表控件对象,输入视图中的位置序号,输入获取标识为 -1的数据参数
local b = i:ulag(a, 1, -1)
说明:
常用与在列表控件的事件中,获取参数数据与用户进行互动。获取失败将赋值变量为 nil
注意:
使用此方法在uls中设置控件参数后,有设置参数的控件,在事件中可使用此方法。
【ulas 更新列表内容数据】
用法:
--输入当前的控件对象,输入获取控件ID 1的数据参数
local b = i:ulas(a, 1)
--输入当前的控件对象,输入获取标识为 -1的数据参数
local b = i:ulas(a, -1)
--通过 数据列表对象 或 列表控件对象 获取数据
--输入数据列表对象 或 列表控件对象,输入视图中的位置序号,输入获取标识为 -1的数据参数,输入新的数据
local b = i:ulas(a, 1, -1)
--刷新列表显示内容,常用增加数据后的刷新。
i:ula(a)
说明:
常用与更新修改列表内容数据。修改数据后,别忘记刷新列表。
【usms 发送短信】
用法:
local a = "10086"
local b = "0"
i:usms(a, b)
注意:测试时只显示syso日志,不直接 发送短信,打包即可。
【ucall 拨打电话】
用法:
local a = "10086"
i:ucall(a)
注意:测试时只显示syso日志,不直接 拨出号码,打包即可。
【time 当前时间】
用法:
local a = 0
local b = i:time(a)
syso(b)
说明:
第一个参数为时间类型,第二个赋值变量
[数字类型]
0:2014-07-07 09:10:08
1:2014/07/07 09:10:08
2:2014-07-07
3:09:10:08
4:18144133553151
5:2014年07月07日 09:10:08
[字符类型,输入字符形式需引号概括]
Y 年
m 月
d 日
H 时
M 分
S 秒
a/A 星期几
【fi 判断路径是否文件夹】
用法:
local a = "abc"
local b = i:fi(a)
syso(b)
说明:
指定路径,判断是否为目录文件夹,返回:true 或 false
【swh 获取屏幕分辨率】
用法:
local a = "w"
--获取屏幕宽度的dp
local w = i:swh(a)
local a = "h"
--获取屏幕高度的dp
local h = i:swh(a)
local a = "hh"
--获取屏幕真实高度的dp
local w = i:swh(a)
local a = "pxw"
--获取屏幕宽度的px像素
local w = i:swh(a)
local a = "pxh"
--获取屏幕高度的px像素
local h = i:swh(a)
local a = "pxhh"
--获取屏幕真实高度的px像素
local hh = i:swh(a)
说明:
常用于获取屏幕的大小。
真实高度:不去除其他系统界面所占用(如状态栏)
【stobm 汉子转换编码字符】
用法:(你 转换 %E4%BD%A0)
local b = i:stobm("你", "utf-8")
tw(b)
说明:
有些时候网络操作的时候,网址需要带有字符参数,就可以把这个汉字转换下。
【sutf8to 将UTF-8编码字符转换中文】
local b = i:sutf8to("%E4%BD%A0")
tw(b)
【uycl 隐藏状态栏】
用法:
--隐藏
i:uycl(true)
--不隐藏
i:uycl(false)
说明:
隐藏手机顶部的状态栏
【uycl 修改状态栏颜色】
用法:
--输入更变颜色,并且保留状态栏空间
i:uycl("#50c4e5", true)
--输入更变颜色,并且不保留状态栏空间
i:uycl("#50c4e5", false)
说明:
常用与设置一体化颜色,以及更变不同的状态栏颜色。
注意:
仅系统android 4.4以及以上才有效果,系统android 5.0以及以上效果更佳!
android 4.4以下的系统,无效果!
【ushsp 设置横屏或竖屏】
用法:
--横屏
i:ushsp(true)
--竖屏
i:ushsp(false)
说明:
设置屏幕的显示方式,注意的是设置后载入事件将重新执行
【bfv 播放视频】
用法:(播放SD卡上的视频文件)
local a = "%abcd.mp4"
i:bfv(a)
--并且横屏
local a = "%abcd.mp4"
local b = true
i:bfv(a, b)
--并且横屏
local a = "http://m.baidu.com/abcd.mp4"
local b = true
i:bfv(a, b)
说明:
此方法将全屏播放SD卡上的视频文件。调用自带的播放器。
注意:
不支持加载assets文件。支持SD卡文件、应用私有文件、(http)远程网络文件!
支持格式:
3gp、MP4、avi
【ftz 发送通知栏】
用法:
i:ftz("提醒标题", "标题", "内容", nil, [[
tw("点击了")
]])
--设置显示图标
i:ftz("提醒标题", "标题", "内容", "%abc.png", [[
tw("点击了")
]])
说明:
可以用于通知用户。
【uapp 打开App应用或游戏】
用法:
local c = i:uapp("com.iapp")
--或 带有指定类名的启动
local c = i:uapp("com.iapp", "com.yougaile.MakeiApp.logoActivity")
说明:
输入应用包名,赋值变量; 赋值变量返回启动结果:true 或 false
【uapplist 获取App列表】
用法:
local b = i:uapplist(true)
local c = b[1]
syso(c[0])
说明:
输入 是否包括获取系统App,返回一个列表数组 至变量 “b”,每列数据将存储一个应用的信息,并且以数组方式储存。
其中列数组内容序列:
0应用包名,1启动类,2应用标题,3应用版本
【uapplistgo 获取正在运行的App列表】
用法:
local b = i:uapplistgo()
syso(b[0])
说明:
输入 返回一个列表数组 至变量 “b”,每列数据将存储一个应用的信息,并且以 “\n”隔开。
其中列内容格式:
应用包名,pid, uid
【uninapp 卸载应用】
用法:
i:uninapp("com.iapp")
说明:
输入应用包名
【huf 上传文件】
用法:
t(
function()
local a = "http://abc.com/upfile.php"
local b = "filename=iApp我的应用.apk&test=一款非常好的应用哦"
local c = "%abc/iApp.apk"
local d = "utf-8"
local e = i:huf(a, b, c, d)
syso(e)
end
)
2.设置 header文件头,文件头包括了Cookie,User-Agent设备型号。。
t(
function()
local a = "http://abc.com/upfile.php"
local b = "filename=iApp我的应用.apk&test=一款非常好的应用哦"
local c = "%abc/iApp.apk"
local d = "utf-8"
local e = "User-Agent=Mozilla/5.0 (iPad; U; CPU OS 6_0 like Mac OS X; zh-CN; iPad2)||Cookie=aa:123;bb:456;||accept-language=zh-CN"
local f = huf(a, b, c, d, e)
syso(f)
end
)
说明:
输入 http接口,表单内容,手机内存选择文件,接口的网页编码, 赋值变量。 返回网页内容将赋值给变量 “e”
【nvw 创建动态控件】
用法:
--将控件添加至指定的控件作为子控件
--输入要添加的控件ID或控件对象,输入添加至指定控件ID或控件对象
i:nvw(id, did)
--输入要添加的控件ID或控件对象,输入添加至指定控件ID或控件对象,输入插入指定序号
i:nvw(id, did, 0)
--创建文本控件
--输入控件ID,输入添加至指定控件ID或控件对象(若不添加则输入nil),输入控件类型,输入控件属性
local id = 123456
local did = 1
local v = i:nvw(id, did, "文本", "width=-2\nheight=-2\ntext=内容", b)
说明:
输入创建的控件ID,输入将新控件添加至指定控件ID或控件对象,创建控件的类型,创建控件的属性
【uall 获取子控件】
用法:
--输入控件ID或控件对象,输入false时将赋值子控件ID,输入赋值变量将返回一个数据列表
local a = i:uall(1, false)
--输入控件ID或控件对象,输入true时将赋值子控件对象,输入赋值变量将返回一个数据列表
local a = i:uall(1, true)
tw(a[0])
说明:
获取一个包含子控件的,控件中所有的子控件。
【urvw 移除控件】
用法:
i:urvw(3)
说明:
输入需要移除的控件ID或控件对象
【sbp 图像分割】
用法:
--载入一个图像变量,并赋值到图像变量“b”
local b = i:sbp("%1.png")
--载入一个用户图标,{裁剪图像区域(像素):x坐标:80,y坐标:90,裁剪宽度:50,裁剪高度:60}
--并将裁剪好的赋值到图像变量“b”
local b = i:sbp("%1.png", 80, 90, 50, 60)
--载入一个SD卡上的图标,{裁剪图像区域(像素):x坐标:80,y坐标:90,裁剪宽度:50,裁剪高度:60},图像旋转图像:180度
--并将裁剪好的赋值到图像变量“b”
local b = i:sbp("%1.png", 80, 90, 50, 60, 180)
说明:
三种方式载入图像,从图像变量,从用户图标,从SD上图标;并可设置裁剪图片;可设置图像旋转; 并赋值到新的图像变量;
【bfs 保存图像】
用法:
i:bfs(b, "%1.jpg")
--或 压缩比例(1至100)
i:bfs(b, 70, "%1.jpg")
说明:
输入图像变量,输入压缩比例(1至100),输入保存图像的路径,图像将保存至该路径。
【sdeg 启动调试模式】
用法:
i:sdeg(0)
i:sdeg(1)
i:sdeg(2)
说明:
提示日志方式。0打包后没有任何提示,1打包后可任然打印错误,2打包后记录日志保存至文件 iApp/Log
【tot 获取控件图标】
用法:
local id = 4
local b = i:tot(id)
说明:
输入控件ID或控件对象,返回将赋值“b”图像变量。注:此方法仅限于 图片控件,图标按钮控件。
【tzz 图像旋转】
用法:
local a = i:sbp("%1.png")
local b = 90
local c = i:tzz(a, b)
说明:
输入被旋转图像变量,输入旋转度数(逆向旋转数为负数),返回将赋值“c”图像变量。
【tsf 图像缩放】
用法:
local a = i:sbp("%1.png")
--按照倍增缩放,值小于则为缩小,否则为放大
local b = 2
local c = i:tsf(a, b)
--指定高度与宽度缩放
local w = 100
local h = 200
local c = i:tsf(a, w, h)
说明:
输入被缩放图像变量,输入缩放倍数 或 指定图像高度与宽度缩放,返回将赋值“c”图像变量。
【tfz 图像反转】
用法:
local a = i:sbp("%1.png")
--水平反转
local b = "x"
local c = i:tfz(a, b)
--垂直反转
local b = "y"
local c = i:tfz(a, b, c)
说明:
输入被反转图像变量,输入反转方式 x为水平 y为垂直,返回将赋值“c”图像变量。
【tcc 获取图像变量尺寸】
用法:
local a = i:sbp("%1.png")
local b = "w"
local c = i:tcc(a, b)
syso(c)
local b = "h"
local c = i:tcc(a, b)
syso(c)
说明:
获取图像变量的 w宽度 和 h高度。
【sxb 写入剪切板】
用法:
local a = "nihao"
i:sxb(a)
说明:
可用于复制到剪切板,其他应用可获取到此数据。
【shb 获取剪切板】
用法:
local a = i:shb()
syso(a)
说明:
可获取剪切板数据,得到其他地方写入的剪切板数据。
【usjxm 手机休眠】
用法:
i:usjxm(false)
说明:
设置后手机将不休眠,不锁屏。默认为 true 需要休眠。
【bfvs 播放视频】
用法:
--设置SD卡视频文件
--输入控件ID或对象,输入视频文件路径
i:bfvs(1, "%a.mp4")
--设置网络远程视频文件
i:bfvs(1, "http://abc.com/a.mp4")
--增加控制器,c为赋值变量
local c = i:bfvss(1, "media")
--开始播放
i:bfvss(1, "st")
说明:
自定义视频播放控件进行播放视频。
注意:
不支持加载assets文件。支持SD卡文件、(http)远程网络文件!
支持格式:
3gp、MP4、avi
【bfvss 播放视频控制】
用法:
--开始播放
i:bfvss(1, "st")
--暂停播放
i:bfvss(1, "pe")
--停止播放
i:bfvss(1, "sp")
--定位到指定帧
i:bfvss(1, "seekto", 300)
--增加控制器,c为赋值变量
local c = i:bfvss(1, "media")
--是否在播放
local c = i:bfvss(1, "ip")
tw(c)
--获取视频时长(毫秒)
local c = i:bfvss(1, "dn")
tw(c)
--获取当前播放时长(毫秒)
local c = i:bfvss(1, "cn")
tw(c)
【addv 加载界面】
用法:
--界面中载入其他界面
local id = 1
i:addv(id, "a.ilua")
i:addv(id, "b.ilua")
--侧滑窗体
local id = 1
i:addv(id, "a.ilua|b.ilua")
--滑动窗体,将带有赋值变量。此处变量“b”赋值为根控件列表,先通过 gslist 访问指定序号的根控件。通过 gvs 指定的根控件访问指定ID的控件。
local id = 1
local b = i:addv(id, "a.ilua|b.ilua")
说明:
输入控件ID,输入界面名,输入辅助参数。可用将一个界面的控件,载入到指定控件作为子控件。
如何设置或获取属性上例 a.ilua 中的控件呢?
通过文件名作为对象,进行访问,如:
--注意:此对象的使用方式。
local b = i:ug("a.2", "text")
i:us("a.3", "text", "你好")
注意:
如果载入事件中使用 addv 滑动窗体进行绑定, 如果还需要给滑动窗体内的界面中的控件设置数据,需要将设置控件的代码写在 载入完毕事件 中。否将将可能设置数据失败。
注意:
若增加 侧滑窗体 与 滑动窗体 的子控件,需要在被载入的界面设计中,自设一个根目录,作为界面唯一根目录。
【gvs 获取控件对象】
用法:
--根据当前界面,来获取控件
--输入要获取的控件ID,输入赋值变量
local c = i:gvs(1)
--根据控件对象,来获取内部的子控件
--输入控件ID或控件对象,输入要获取的控件ID,输入赋值变量
local c = i:gvs(1, 2)
说明:
常用与于利用根控件获取内部的子控件 或 获取控件对象。获取失败将赋值返回 nil
【aslist 添加数据列表】
用法:
local a
a = i:aslist(a, {"你好", "你好", "你好"})
a = i:aslist(a, {"你好2", "你好2", "你好2"})
--可插入数据到指定序号
a = i:aslist(a, {"你好3","你好3","你好3"}, 1)
说明:
输入列表对象,输入要添加的数据,输入插入指定序号。
【sslist 数据列表设置数据】
用法:
local b = 1
local c = "数据"
i:sslist(a, b,c)
说明:
输入列表对象,输入指定数据序号,输入设置的数据
【gslist 数据列表访问数据】
用法:
local b = 1
local c = i:gslist(a, b)
syso(c)
说明:
输入列表对象,输入指定数据序号,输入赋值变量
【gslistl 数据列表访问数据总数】
用法:
local b = i:gslistl(a)
syso(b)
说明:
输入列表对象,输入赋值变量
【dslist 数据列表删除指定数据】
用法:
local b = 1
i:dslist(a, b)
--清空所有数据
local b = -1
i:dslist(a, b)
说明:
输入列表对象,输入指定数据序号
提示:
如果需要清空所有数据,[输入指定数据序号]可输入 -1 即会删除当前数据列表所有数据。
【gslistsz 列表数据转化为数组】
用法:
local b = i:gslistsz(a)
说明:
输入列表对象,输入赋值变量
【gslistis 列表数据检查是否存在指定数据】
用法:
local b = "数据"
local c = i:gslistis(a, b)
说明:
输入列表对象,被判断的数据,输入赋值变量。赋值数据:true 或 false
【gslistiof 列表数据从头开始检查是否包含该数据】
用法:
local b = "数据"
local c = i:gslistiof(a, b)
说明:
输入列表对象,被判断的数据,输入赋值变量
【gslistlof 列表数据从尾开始检查是否包含该数据】
用法:
local b = "数据"
local c = i:gslistlof(a, b)
说明:
输入列表对象,被判断的数据,输入赋值变量
【nuibs 背景选择器】
用法:
--使用颜色作为背景
local pressed = "#333333"
local selected = "#333333"
local normal = "#888888"
local b = i:nuibs(pressed, selected, normal)
--使用图像作为背景
local pressed = "%a.png"
local selected = "%a.png"
local normal = "%b.png"
local b = i:nuibs(pressed, selected, normal)
--使用渐变颜色作为背景
.配置选中状态背景
local a = 0
local b = 0
local c = "#255779|#3e7492|#a6c0cd"
local d = "0"
local e = "topbottom"
local pressed = i:ngde(a, b, c, d, e)
.配置正常状态背景
local a = 0
local b = 0
local c = "#255779|#3e7492|#a6c0cd"
local d = "0"
local e = "rightleft"
local normal = i:ngde(a, b, c, d, e)
local selected = pressed
local b = i:nuibs(pressed, selected, normal)
说明:
输入按下背景,输入选中背景,输入正常状态背景,输入赋值变量。
【ngde 背景调控器】
用法:
--输入圆角半径,输入背景填充色,输入赋值变量
local a = 15
local b = "#888888"
local c = i:ngde(a, b)
--输入边框宽度,输入背景填充色,输入边框颜色,输入赋值变量
local a = 5
local b = "#888888"
local c = "#333333"
local d = ngde(a, b, c)
--输入边框宽度,输入圆角半径,输入背景填充色,输入边框颜色,输入赋值变量
local a = 5
local b = 15
local c = "#888888"
local d = "#333333"
local e = i:ngde(a, b, c, d)
--颜色渐变。输入边框宽度,输入圆角半径,输入背景填充渐变色组,输入边框颜色,输入颜色渐变方向,输入赋值变量
local a = 5
local b = 15
local c = "#255779|#3e7492|#a6c0cd"
local d = "#333333"
local e = "topbottom"
local f = i:ngde(a, b, c, d, e)
说明:
背景空调生成的赋值变量,可配合背景选择器进行应用。
注意:
ngde 代码将赋值返回一个背景对象,此背景对象如果被多个不同大小的控件引用为背景。因为控件的大小不同,会导致此背景对象大小被修改。从而影响其他引用者控件。
提示:
边框与圆角半径 若不想调整,可设值为0 。适用于颜色渐变,不需要调节圆角半径和边框。
颜色渐变方向说明:
topbottom:绘制从顶部梯度至底部
trbl:借鉴右上角渐变左下角
rightleft:绘制从右侧的梯度向左
brtl:借鉴右下角渐变左上角
bottomtop:绘制从底部梯度顶端
bltr:借鉴渐变左下角到右上角
leftright:绘制从左侧的梯度向右
TL_BR:从绘制渐变的左上角到右下角
【sit 目标的设置】
用法:
--如,分享软件
--输入对象,输入属性标识,输入属性值
local a
a = i:sit(a, "action", "android.intent.action.SEND")
a = i:sit(a, "type", "text/plain")
a = i:sit(a, "extra", "android.intent.extra.SUBJECT", "共享软件")
a = i:sit(a, "extra", "android.intent.extra.TEXT", "共享内容文本")
a = i:sit(a, "flags", 268435456)
i:uit(a, "chooser", "标题")
说明:
常用于调用系统程序以及功能 或 第三方程序功能。
可属性标识:action、type、extra、flags、data、classname、component
【uit 目标的执行】
用法:
--输入目标对象,输入属性,输入属性值
i:uit(a, "chooser", "标题")
--输入目标对象,输入属性,输入请求数值
i:uit(a, "result", 1)
--输入目标对象
i:uit(a)
说明:
常用于调用系统程序以及功能 或 第三方程序功能。
属性支持:chooser、result
【git 目标获取参数】
用法:
--输入目标对象,输入属性标识
local c = i:git(a, "action")
local c = i:git(a, "type")
local c = i:git(a, "extra", "title")
local c = i:git(a, "flags")
说明:
获取目标的属性。
【uqr 二维码扫描】
用法:
--扫描二维码
i:uqr()
--扫描结果,需要在 回调结果事件 写代码
if st_sC == 1102 then
local c = i:git(st_iT, "extra", "result")
syso(c)
end
--生成二维码图像
s a = "http://wap.baidu.com"
--输入字符串数据,输入图像长宽像素;将返回一个图像变量
local c = i:uqr(a, 400)
--识别二维码图像
--输入图像变量或图片路径;将返回一个字符串
local c = i:uqr(a)
说明:
常用于网络通用二维码扫描。
【zdp dip转换px】
用法:
local dp = 10
--输入dp数值
local c = i:zdp(dp)
说明:
用于常用数据转换。
【zpd px转换dip】
用法:
local px = 10
--输入px数值,输入赋值变量
local c = i:zpd(px)
说明:
用于常用数据转换。
【zps px转换sp】
用法:
local px = 10
--输入px数值,输入赋值变量
local c = i:zps(px)
说明:
用于常用数据转换。
【zsp sp转换px】
用法:
local sp = 10
--输入sp数值,输入赋值变量
local c = i:zsp(sp)
说明:
用于常用数据转换。
【lan 跳转界面动画】
用法:
i:uigo("abc.ilua")
--输入跳转界面动画的序号;6 右往左推出效果
i:lan(6)
说明:
用于跳转界面时候进行的动画效果
提示:
0.淡入淡出效果 1.放大淡出效果 2.转动淡出效果1 3.转动淡出效果2 4.左上角展开淡出效果 5.压缩变小淡出效果 6.右往左推出效果 7.下往上推出效果 8.左右交错效果 9.放大淡出效果 10.缩小效果 11.上下交错效果
【sjxx 获取设备信息】
用法:
local a = i:sjxx()
syso(a[0])
说明:
获取手机基本信息,将返回一个数组到赋值变量“a”,数组格式如下:
数据格式:(真实数据 \n 旁边将不没有空格)
CPU型号 \n CPU频率
屏幕宽度 \n 屏幕高度 \n 分辨率宽度 \n 分辨率高度
手机型号 \n 手机品牌 \n 手机SDK
【simsi 获取设备imsi】
用法:
local a = i:simsi()
syso(a)
说明:
常用于识别用户的手段。
【simei 获取设备imei】
用法:
local a = i:simei()
syso(a)
说明:
常用于识别用户的手段。
【endkeyboard 强制隐藏虚拟键盘】
用法:
i:endkeyboard()
说明:
常用于需要隐藏安卓弹出的虚拟键盘。
【hdfl 文件下载器】
用法:
--两个参数的方法设置
local savedir = "%SaveDir"
--输入下载保存目录,输入赋值变量返回一个下载器对象
a = i:hdfl(savedir,
function(st_drD,st_drI)
--每当下载完一个执行
--系统赋值 st_drD 文件下载项的序号
--系统赋值 st_drI 文件下载项的状态
--获取下载的URL
local b1 = i:ulag(a, st_drD, "url")
syso(b1)
--获取自定义整数标识
local b2 = i:ulag(a, st_drD, "type")
syso(b2)
--获取自定义参数任意数据
local b3 = i:ulag(a, st_drD, "text")
syso(b3)
--获取下载文件保存的路径
local b4 = i:ulag(a, st_drD, "filename")
syso(b4)
end
,
function(st_drJ)
--当下载完目前所有执行
--系统赋值 st_drJ 本次文件下载完成总数
syso(st_drJ)
end
)
--三个参数的方法设置
local tempdir = "%TempDir"
local savedir = "%SaveDir"
--输入下载临时文件保存目录,输入下载保存目录,输入赋值变量返回一个下载器对象
local a = i:hdfl(tempdir, savedir,
function(st_drD,st_drI)
syso(st_drD)
end
,
function(st_drJ)
syso(st_drJ)
end
)
--六个参数的方法设置
local tempdir = "%TempDir"
local savedir = "%SaveDir"
--输入下载临时文件保存目录,输入下载保存目录, 下载线程数量,连接网络超时时间(25秒的意思),文件重复是否覆盖,输入赋值变量返回一个下载器对象
local a = i:hdfl(tempdir, savedir, 3, 25000, true,
function(st_drD,st_drI)
syso(st_drD)
end
,
function(st_drJ)
syso(st_drJ)
end
)
说明:
常用与单个或多个的文件下载。推荐图片列表下载或小文件下载。
提示:
代码 区域中 属于线程内执行。在其中更新界面控件属性需要使用ufnsui代码
上例子使用tw代码,并且用了ufnsui代码。
【hdfla 文件下载器 增加文件下载项】
用法:
--创建一个文件下载器
local a = i:hdfl("%TempDir",
function()
syso(st_drD)
end
,
function()
syso(st_drJ)
end
)
--增加下载项
--输入下载器对象,输入下载连接URL,输入自定义整数标识,输入自定义参数任意数据
i:hdfla(a, "http://abc.com/1.jpg", 1, "abcd123")
--增加下载项,并且自定义保存目录
--输入下载器对象,输入下载连接URL,输入自定义整数标识,输入自定义参数任意数据,输入自定义保存路径
i:hdfla(a, "http://abc.com/2.jpg", 1, "abcd123", "%abc.jpg")
说明:
调用下载器增加下载项,并且立刻进行下载。
【hdd 配置下载管理器】
用法:
--下载产生的临时文件目录
local a = "%tempdir"
--下载至保存的目录
local b = "%filedir"
--允许同时下载任务数量
local c = 3
--每个任务开启线程数量
local d = 3
--连接失败重试次数
local e = 2
--连接超时时间,25秒的意思
local f = 25000
--是否显示下载进度通知
local g = true
i:hdd(a, b, c, d, e, f, g)
说明:
如果不使用此代码进行配置,那么系统将使用默认配置。下载配置器可以很方便的制作下载文件,并且方便管理。
默认目录属性:
临时文件目录:iApp/DownloadFileDir/TempDefaultDownFile
保存文件目录:iApp/DownloadFileDir/DefaultDownFile
【hdda 下载管理器 增加文件下载项】
用法:
--===========方法一
--下载的链接
local url = "http://abc.com/abc.apk"
--保存的文件名(仅输入文件名,请勿不包含目录)
local name = "abc.apk"
--输入自定义参数任意数据
local data = "abcde123"
--变量v为赋值变量,为下载对象
local v = i:hdda(url, name, data)
--===========方法二
--下载的链接
local url = "http://abc.com/abc.apk"
--保存的文件名(仅输入文件名,请勿不包含目录)
local name = "abc.apk"
--下载任务的标题
local title = "abc.apk最新版"
--输入自定义参数任意数据
local data = "abcde123"
--变量v为赋值变量,为下载对象
local v = i:hdda(url, name, title, data)
--===========方法三
--下载的链接
local url = "http://abc.com/abc.apk"
--保存的文件名(仅输入文件名,请勿不包含目录)
local name = "abc.apk"
--下载任务的标题
local title = "abc.apk最新版"
--下载任务的图标
local icon = "@abc.png"
--输入自定义参数任意数据
local data = "abcde123"
--变量v为赋值变量,为下载对象
local v = i:hdda(url, name, title, icon, data)
--===========方法四
--下载的链接
local url = "http://abc.com/abc.apk"
--保存至目录
local dir = "%filedir"
--保存的文件名(仅输入文件名,请勿不包含目录)
local name = "abc.apk"
--下载任务的标题
local title = "abc.apk最新版"
--下载任务的图标
local icon = "@abc.png"
--是否显示下载进度通知
local notsohw = true
--输入自定义参数任意数据
local data = "abcde123"
--变量v为赋值变量,为下载对象
local v = i:hdda(url, dir, name, title, icon, notsohw, data)
说明:
增加常用的网络文件进行下载。
【hddgl 获取下载管理器下载列表】
用法:
--输入赋值变量返回下载列表
local list = i:hddgl()
--获取第一位数据
local b = i:gslist(list, 0)
local c = i:hddg(b, "url")
syso(c)
说明:
获取下载管理器所有的下载列表。
【hddg 获取下载管理器获取下载项属性】
用法:
--下载的链接
local url = "http://abc.com/abc.apk"
--保存的文件名(仅输入文件名,请勿不包含目录)
local name = "abc.apk"
--输入自定义参数任意数据
local data = "abcde123"
--变量v为赋值变量,为下载对象
local v = i:hdda(url, name, data)
--===========获取下载项的属性
--获取下载项的 ID
local b = i:hddg(v, "id")
--获取下载项的 下载链接
local b = i:hddg(v, "url")
--获取下载项的 保存的绝对路径
local b = i:hddg(v, "dirfilename")
--获取下载项的 下载链接的md5
local b = i:hddg(v, "urlmd5")
--获取下载项的 保存的目录
local b = i:hddg(v, "dir")
--获取下载项的 保存的文件名
local b = i:hddg(v, "filename")
--获取下载项的 下载文件的大小(字节)
local b = i:hddg(v, "contentlength")
--获取下载项的 已下载的数据(字节)
local b = i:hddg(v, "equivalent")
--获取下载项的 当前下载速度(字节)
local b = i:hddg(v, "downloadspeed")
--获取下载项的 当前下载进度百分比
local b = i:hddg(v, "downloadpercentage")
--获取下载项的 下载状态;(0为等待下载;1为正在下载;2为下载完成;3下载已经暂停或停止;-1下载失败;-2已删除)
local b = i:hddg(v, "status")
--获取下载项的 是否显示下载通知
local b = i:hddg(v, "notificationshow")
--获取下载项的 自定义的数据
local b = i:hddg(v, "text")
--获取下载项的 通知标题
local b = i:hddg(v, "title")
--获取下载项的 通知图标
local b = i:hddg(v, "icon")
说明:
可获取详细的下载项目状态属性。
【hdds 设置下载管理器下载项的属性】
用法:
--下载的链接
local url = "http://abc.com/abc.apk"
--保存的文件名(仅输入文件名,请勿不包含目录)
local name = "abc.apk"
--输入自定义参数任意数据
local data = "abcde123"
--变量v为赋值变量,为下载对象
local v = i:hdda(url, name, data)
--===========可设置的下载项属性
--设置下载项的 下载状态;(0为等待下载;1为正在下载;2为下载完成;3下载已经暂停或停止;-1下载失败;-2已删除)
i:hdds(v, "status", 0)
--设置下载项的 是否显示下载通知
i:hdds(v, "notificationshow", true)
--设置下载项的 自定义的数据
i:hdds(v, "text", "abcd123")
--设置下载项的 通知标题
i:hdds(v, "title", "abc.apk最新版本")
--设置下载项的 通知图标
i:hdds(v, "icon", "@abc.png")
说明:
设置下载项目的属性。
【hdduigo 跳转至下载管理器】
用法:
--跳转至下载管理器
i:hdduigo()
--跳转至下载管理器,并且自定义标题栏颜色
--主体颜色
local a = "#387bd6"
--底部横杠颜色
local b = "#255eab"
i:hdduigo(a, b)
说明:
跳转至文件下载的管理器。
【ufnsui 线程更新界面】
用法:
i:ufnsui(
function()
tw(a)
us(1, "text", "内容")
end
)
说明:
线程中直接修改界面或修改设置控件属性,出错。
需要使用ufnsui模块进行更新或设置控件属性。
提示:
线程中获取控件数据不会出错。
【se 正则表达式操作】
用法:
--===========例子1;所有属性展示
--字符串
local a = "qqqq123456eee"
--正则表达式
local b = "([a-z]+)(\d+)"
--更多参数
local c = 0
local d = i:se(a, b, c)
syso(d)
--替换成,将替换全部
local e = i:se(d, "sral", "1:$1, 2:$2")
syso(e)
--替换成,只替换第一个
local e = i:se(d, "srft", "1:$1, 2:$2")
syso(e)
--返回是否匹配成功,赋值返回true或 false
.local e = i:se(d, "ms")
--开始匹配 或 匹配下一个,赋值返回true或 false
.local e = i:se(d, "find")
--给定位置序号进行匹配,赋值返回true或 false
.local e = i:se(d, "find", 1)
--获取匹配组的数量,当前为2组:([a-z]+)、(\d+)
.local e = i:se(d, "gl")
--获取第1组匹配到的子字符串在字符串中的开头位置
.local e = i:se(d, "start", 1)
--获取第1组匹配到的子字符串在字符串中的结尾位置
.local e = i:se(d, "end", 1)
--获取第1组匹配到的子字符串
.local e = i:se(d, "group", 1)
--获取第2组匹配到的子字符串
.local e = i:se(d, "group", 2)
--===========例子2;获取所有手机号
--字符串
local a = "我的号码 13612345678 , 你的号码 13412345678"
--正则表达式
local b = "[1][3-8]\d{9}"
--更多参数
local c = 0
local d = i:se(a, b, c)
--开始匹配 或 匹配下一个
local ee = i:se(d, "find")
--循环判断是否匹配成功
while ee do
--因为 [1][3-8]\d{9} 没有组,所以这里我们输入 0
local e = i:se(d, "group", 0)
--打印出匹配到的子字符串
syso(e)
--开始匹配 或 匹配下一个
ee = i:se(d, "find")
end
--===========例子3;判断是否为手机号
--字符串
local a = "13612345678"
--正则表达式
local b = "^[1][3-8]\d{9}$"
--更多参数
local c = 0
local d = i:se(a, b, c)
local e = i:se(d, "ms")
if e == true then
syso("手机号格式正确")
else
syso("手机号格式错误")
end
说明:
常用与字符串处理,高效的处理字符串,以及检测字符串类型等。使用此方法,需要对正则表达式有部分知识。
【usg 闪光灯操作】
用法:
--开启闪光灯
--输入闪光灯变量对象,输入是否开启闪光灯
local sgd
sgd = i:usg(sgd, true)
--关闭闪光灯
--输入闪光灯变量对象,输入是否开启闪光灯
sgd = i:usg(sgd, false)
说明:
开启或关闭 设备闪光灯!
说明:
常用照明。
注意:
此方法调用将无法与摄像头同时调用。如启动摄像头需要使用闪光灯,可在摄像头操作中开启闪光灯。
【uzd 震动器操作】
用法:
--震动1秒时长
--输入振动器变量对象,输入震动时长
local zdq
zdq = i:uzd(zdq, 1000)
--静止1秒,震动1秒,静止1秒,震动1秒,静止1秒,震动1秒,静止1秒,.., 并且不重复
--输入振动器变量对象,输入震动规则,输入是否重复循环执行
zdq = i:uzd(zdq, { 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }, false)
--强制停止震动器
i:uzd(zdq, "sp")
--检查硬件是否具有振动器
local b = i:uzd(zdq, "ip")
syso(b)
说明:
常用提示用户。
【usxq 开启前置摄像头】
用法:
local ps
--开启摄像头
--输入摄像头变量对象,输入面控件的对象或ID,摄像头旋转角度
ps = i:usxq(ps, 1, 90)
--输入摄像头变量对象,输入面控件的对象或ID,摄像头旋转角度,输入拍摄宽度像素,输入拍摄高度像素,输入图像品质1-100
ps = i:usxq(ps, 1, 90, 640, 480, 95)
--自动对焦拍摄
--输入摄像头变量对象,输入保存路径,输入图像旋转角度,输入拍摄是否停止预览
ps = i:usx(ps, "shot", "%abc.jpg", -90, false)
说明:
指定打开前置摄像头。
注意:
此功能需要与一个面控件进行绑定,你可以在面控件上面设置拍摄事件。
注意:
此代码仅限于载入事件调用。
【usxh 开启后置摄像头】
用法:
local ps
--开启摄像头
--输入摄像头变量对象,输入面控件的对象或ID,摄像头旋转角度
ps = i:usxh(ps, 1, 90)
--输入摄像头变量对象,输入面控件的对象或ID,摄像头旋转角度,输入拍摄宽度像素,输入拍摄高度像素,输入图像品质1-100
ps = i:usxh(ps, 1, 90, 1280, 960, 95)
--自动对焦拍摄
--输入摄像头变量对象,输入保存路径,输入图像旋转角度,输入拍摄是否停止预览
ps = i:usx(ps, "shot", "%abc.jpg", 90, false)
说明:
指定打开后置摄像头。
注意:
此功能需要与一个面控件进行绑定,你可以在面控件上面设置拍摄事件。
注意:
此代码仅限于载入事件调用。
【usx 摄像头操作】
用法:
--开启摄像头
i:usxh(ps, 1, 90)
--自动对焦拍摄
--输入摄像头变量对象,输入保存路径,输入图像旋转角度,输入拍摄是否停止预览
i:usx(ps, "shot", "%abc.jpg", 90, false)
--开始预览
i:usx(ps, "st")
--停止预览
i:usx(ps, "sp")
--旋转摄像头角度
i:usx(ps, "rotaing", 180)
--获取旋转摄像头角度
local b = i:usx(ps, "getrotaing")
syso(b)
--启动摄像头闪光灯
i:usx(ps, "usg", true)
--结束摄像头组件变量对象
i:usx(ps, "re")
说明:
摄像头的控制。
【bly 录制音频】
用法:
local ly
--开始录制
--输入录音变量对象,输入保存文件路径
i:bly(ly, "%abcd.amr")
--停止录音
i:bly(ly, "sp")
说明:
常用于录制音频。
说明:
可使用 bfm 代码来播放录制好的音频。
【ujp 截取屏幕】
用法:
--输入保存路径,输入图像品质(1-100)
i:ujp("%123.jpg", 70)
说明:
常用于截取当前界面。
【sqlite 数据库操作】
用法:
local data
--连接一个私有数据库,如果不存在将自动新建
--输入数据库对象变量,输入数据库文件名
i:sqlite(data, "iapp.db")
--连接一个公共数据库,如果不存在将自动新建
--输入数据库对象变量,输入数据库文件名
i:sqlite(data, "%iapp.db")
--判断数据库是否存在
local b = i:sqlite("iapp.db", "ip")
syso(b)
--删除数据库
local b = i:sqlite("iapp.db", "del")
syso(b)
--释放数据库
i:sqlite(data, "re")
说明:
进行数据库的操作。
【sql 数据表操作】
用法:
--创建数据表
local table = "_id integer primary key,url text, filename text,status interger,createTime datetime"
local b = i:sql(data, "info", "add", table)
--判断数据表是否存在
local b = i:sql(data, "info", "ip")
syso(b)
--删除数据表
local b = i:sql(data, "info", "del")
syso(b)
--添加数据表一条数据
local table = "url,filename,status,createTime"
local value = "'http://abc.com/abc.apk', 'abc.apk', 1, '" .. i:time(0) .. "'"
local b = i:sql(data, "info", "add", table, value)
syso(b)
--修改数据表的数据,若不需要设置条件(status=2)可设为 nil 视为适用于执行所以数据
local b = i:sql(sss.data, "info", "up", "status=2", "_id=1")
syso(b)
--删除数据表的数据,若不需要设置条件(_id=1)可设为 nil 视为适用于执行所以数据
local b = i:sql(sss.data, "info", "del", "_id=1")
syso(b)
--查询,若不需要设置条件(status=1 order by _id desc LIMIT 0,1)可设为 nil 视为适用于执行所以数据
-- LIMIT <跳过的数据数目>, <取数据数目>
local table = "_id,url,filename,status,createTime"
local sqlx = "status=1 order by _id desc LIMIT 0,1"
local da = i:sql(sss.data, "info", "sele", table, sqlx)
--自定义sql查询
--local sqlx = "select _id,url,filename,status,createTime from info where status=1 order by _id desc LIMIT 0,1"
--local da = i:sql(data, sqlx)
--光标对象移到下一条数据
local ee = i:sqlsele(da, "next")
while ee do
--获取光标对象的第一列数据
local e = i:sqlsele(data, 0)
syso(e)
--获取光标对象的第二列数据
local e = i:sqlsele(data, 1)
syso(e)
--光标对象移到下一条数据
ee = i:sqlsele(data, "next")
end
--自定义的sql执行,需要对sql语法了解才能灵活运用
local sqlx = "insert into info (url,filename,status,createTime) values ('http://abc.com/abc.apk', 'abc.apk', 1, '2016-7-31 10:31:21')"
i:sql(sqlx, data)
说明:
数据表的操作。
注意:
在执行sql语句的时候,需要注意你的字符串的特殊字符的转义。
/ -> //
' -> ''
[ -> /[
] -> /]
% -> /%
& -> /&
_ -> /_
( -> /(
) -> /)
【sqlsele 查询数据操作】
用法:
--获取光标对象的第一列数据
local e = i:sqlsele(data, 0)
--获取光标对象有多少列
local e = i:sqlsele(data, "columncount")
syso(e)
--获取总共查询到多少条数据
local e = i:sqlsele(data, "count")
syso(e)
--光标对象移到下一条数据
local e = i:sqlsele(data, "next")
--光标对象移到上一条数据
local e = i:sqlsele(data, "previous")
--光标对象移到第一条数据
local e = i:sqlsele(data, "first")
--光标对象移到最后第一条数据
local e = i:sqlsele(data, "last")
--光标对象移到指定第2条数据
i:sqlsele(data, "position", 2)
--获取光标对象当前位置
local e = i:sqlsele(data, "getposition")
syso(e)
--释放数据查询
i:sqlite(data, "re")
说明:
数据查询的操作。
【dha 渐变透明度动画】
用法:
--创建一个渐变透明度动画,开始显示,然后渐变消失
--输入动画开始是否透明,输入动画结束是否透明
local dh = i:dha(true, false)
i:dh(dh, "duration", 2000)
i:us(2, "dh", dh)
说明:
常用于控件透明度动画。
【dhs 渐变尺寸伸缩动画】
用法:
--创建一个渐变尺寸伸缩动画
--0为没有,2.5为原始2.5倍
--输入X开始尺寸比例,输入X结束尺寸比例,输入Y开始尺寸比例,输入Y结束尺寸比例
local dh = i:dhs(0.5, 2.5, 0.5, 2.5)
i:dh(dh, "duration", 2000)
i:us(2, "dh", dh)
--输入X开始尺寸比例,输入X结束尺寸比例,输入Y开始尺寸比例,输入Y结束尺寸比例,输入X位置类型,输入X坐标的开始位置,输入Y位置类型,输入Y坐标的开始位置
local dh = i:dhs(0.5, 2.5, 0.5, 2.5, 1, 0.5, 1, 0.5)
i:dh(dh, "duration", 2000)
i:us(2, "dh", dh)
说明:
常用于控件伸缩动画。
位置类型:
0 默认
1 以对象本身为基准位置类型
2 以父控件为基准位置类型
【dht 画面位置移动动画】
用法:
--创建一个画面位置移动动画
--输入开始X坐标上的移动位置,结束X坐标上的移动位置,开始Y坐标上的移动位置,结束Y坐标上的移动位置
local dh = i:dht(30, 80, 30, 80)
i:dh(dh, "duration", 2000)
i:us(2, "dh", dh)
说明:
常用于控件移动动画。
【dhr 画面旋转动画】
用法:
--创建一个画面旋转动画
--输入动画开始的旋转角度,输入动画旋转到的角度
local dh = i:dhr(0, 180)
i:dh(dh, "duration", 2000)
i:us(2, "dh", dh)
--输入动画开始的旋转角度,输入动画旋转到的角度,输入X位置类型,输入X坐标的开始位置,输入Y位置类型,输入Y坐标的开始位置
local dh = i:dhr(0, 180, 1, 0.5, 1, 0.5)
i:dh(dh, "duration", 2000)
i:us(2, "dh", dh)
说明:
常用于控件旋转动画。
位置类型:
0 默认
1 以对象本身为基准位置类型
2 以父控件为基准位置类型
【dhset 动画集合】
用法:
--渐变尺寸伸缩动画
local dh1 = i:dhs(0.5, 2.5, 0.5, 2.5)
i:dh(dh1, "duration", 2000)
--画面位置移动动画
local dh2 = i:dht(30, 80, 30, 80)
i:dh(dh2, "duration", 2000)
--画面旋转动画
local dh3 = i:dhr(0, 180)
i:dh(dh3, "duration", 2000)
--创建一个动画集合
--输入动画集合变量对象,输入是否使用动画集合的interpolator,输入动画...(可输入N个参数)
local dhlist = i:dhset(false, {dh1, dh2, dh3, dh4})
i:us(2, "dh", dhlist)
说明:
常用于动画集合执行。
提示:
动画集合允许被其他动画集合添加成为子动画。
提示:
动画集合如果设置了动画控制属性,同时也会重置所有子控件的属性。
【dhas 队列动画执行】
用法:
--旋转动画
--输入动画变量对象,输入控件ID或控件对象,输入动画类型,输入旋转角度...(可输入N个参数)
local dh = i:dhas(2, "rotation", 60, 180)
--local dh = i:dhas(2, "rotationX", 30, 80, 60, 20, 60)
--local dh = i:dhas(2, "rotationY", 30, 80)
i:dh(dh, "duration", 2000)
i:dh(dh, "start")
--伸缩动画
--输入动画变量对象,输入控件ID或控件对象,输入动画类型,输入伸缩尺寸比例...(可输入N个参数)
local dh = i:dhas(2, "scaleX", 1.5, 2.5)
--local dh = i:dhas(2, "scaleY", 1.5, 2.5, 1.2, 2.6, 1.3)
i:dh(dh, "duration", 2000)
i:dh(dh, "start")
--移动动画
--输入动画变量对象,输入控件ID或控件对象,输入动画类型,输入移动到位置...(可输入N个参数)
local dh = i:dhas(2, "translationX", 0, 60)
--local dh = i:dhas(2, "translationY", 0, 60, 30, 10, 60)
i:dh(dh, "duration", 2000)
i:dh(dh, "start")
--透明度
--输入动画变量对象,输入控件ID或控件对象,输入动画类型,可见度比例(0.0至1.0)...(可输入N个参数)
local dh = i:dhas(2, "alpha", 1, 0.3, 1, 0.2, 1)
i:dh(dh, "duration", 2000)
i:dh(dh, "start")
说明:
自定义队列动画执行。
【dhast 队列动画集合】
用法:
--旋转动画
local dh1 = i:dhas(2, "rotation", 60, 180)
i:dh(dh1, "duration", 2000)
--伸缩动画
local dh2 = i:dhas(2, "scaleX", 1.5, 2.5)
i:dh(dh2, "duration", 2000)
--移动动画
local dh3 = i:dhas(2, "translationX", 0, 60)
i:dh(dh3, "duration", 2000)
--透明度
local dh4 = i:dhas(2, "alpha", 1, 0.3, 1, 0.2, 1)
i:dh(dh4, "duration", 2000)
--顺序执行
local dhlist = i:dhast("sequen", {dh1, dh2, dh3, dh4})
--同时执行
--local dhlist = i:dhast("together", {dh1, dh2, dh3, dh4})
i:dh(dhlist, "start")
说明:
常用于动画集合执行。
提示:
队列动画集合允许被其他队列动画集合添加成为子动画。
提示:
动画集合如果设置了动画控制属性,同时也会重置所有子控件的属性。
【dh 动画控制】
用法:
--========动画的属性(非队列动画)设置========================
--取消动画,取消后若需要重新播放,需要先执行 reset 然后再执行 start 进行播放
i:dh(dh, "cancel")
--重置动画属性
i:dh(dh, "reset")
--启动动画
i:dh(dh, "start")
--动画持续时长
i:dh(dh, "duration", 2000)
--延迟执行,延迟指定时长后才执行动画
i:dh(dh, "delay", 2000)
--启动动画结束填充效果(如果设false 那么 after 与 before将无效)
i:dh(dh, "enabled", true)
--动画执行后,控件停留执行结束状态
i:dh(dh, "after", true)
--动画执行后,控件停留执行开始状态
i:dh(dh, "before", true)
--动画重复执行的次数
i:dh(dh, "repeat", 20)
local dh2 = i:dhas(2, "rotation", 60, 180)
--动画集合添加动画,仅用于 dhset 动画集合追加更多的动画
i:dh(dh, "add", dh2)
--========队列动画的属性设置========================
--取消动画
i:dh(dh, "cancel")
--播放动画
i:dh(dh, "start")
--动画持续时长
i:dh(dh, "duration", 2000)
--延迟执行,延迟指定时长后才执行动画
i:dh(dh, "delay", 2000)
--动画是否正在运行
local b = i:dh(dh, "running")
syso(b)
--设置动画执行的控件ID或控件对象
i:dh(dh, "target", 2)
--克隆动画
local dh2 = i:dh(dh, "clone")
说明:
常用于动画的控制管理。
【dhon 动画监听事件】
用法:
--========动画(非队列动画)设置监听事件========================
i:dhon(dh,
function()
syso("End")
end
,
nil
,
nil
)
--或
i:dhon(dh,
function()
syso("End")
end
,
function()
syso("Repeat")
end
,
function()
syso("Start")
end
)
--========队列动画设置监听事件========================
i:dhon(dh,
function()
--当结束动画时
syso("End")
end
,
function()
--当重复动画时
syso("Repeat")
end
,
function()
--当启动动画时
syso("Start")
end
,
function()
--当取消动画时
syso("Cancel")
end
)
--或
i:dhon(dh,
function()
--当结束动画时
syso("End")
end
,
nil
,
nil
,
nil
)
说明:
常用于动画状态的监听。
提示:
该事件使用的选择性,可顺序选择性保留。
【dhb 动画背景】
用法:
--创建动画背景
--输入动画背景变量对象,输入是否重复执行
local dh = i:dhb(true)
--添加元素
--输入动画背景变量对象,输入背景图像或图片变量或背景对象,输入显示时长
i:dhb(dh, "@t1.png", 1000)
i:dhb(dh, "@t2.png", 1000)
i:dhb(dh, "@t3.png", 1000)
--设为指定控件背景
i:us(2, "background", dh)
--启动动画
i:dhb(dh, "start")
--停止动画
--i:dhb(dh, "stop")
--是否在运行
local b = i:dhb(dh, "running")
syso(b)
说明:
常用于组合一个背景动画。
【hsas 开启浏览器控件交互(裕语言+js+html5)】
用法:
--开启浏览器控件支持iapp交互
--输入浏览器控件ID或对象,输入是否开启
i:hsas(1, true)
--i:hsas(1, false)
说明:
常用于浏览器中的JavaScript代码于iapp代码的互相调用。
【has 裕语言交互JavaScript语言】
用法:
--首先将 web.html 放入用户文件中
--设置浏览器控件显示的html内容
local a = "@web.html"
local b = "utf-8"
local c = i:fr(a, b)
local d = "utf-8"
local e = "text/html"
local f = i:us(1, "url", c, d, e)
--因为浏览器加载内容属于异步操作,如果立刻执行下面的代码会执行失败
--所以将下面的代码放入某项单击事件中
local a = "go('呀!')"
--输入浏览器控件ID或对象,输入JavaScript的方法
i:has(1, a)
--带返回值解决方案
--local a = "go2('呀!')"
--输入浏览器控件ID或对象,输入JavaScript的方法
--i:has(1, a)
说明:
常用于浏览器中的JavaScript代码于iapp代码的互相调用。
注意:
在载入事件设置浏览器控件的加载html内容,它不会立刻加载完成。所以如果将 裕语言交互js的代码也写在载入事件,会导致交互调用失败。必须等待浏览器加载完毕html内容后,才能交互。
注意:
建议尽量使用JavaScript调用交互裕语言,效率较高。裕语言调用执行JavaScript的方法效率要慢数倍。
注意:
has 不应该放在新线程中,测试发现5.1系统has放入新线程中报错。
注意:
本例子需要注意编码,否则将乱码。
html(web.html)文件(utf-8编码)例子:
<html>
<head>
<script type="text/javascript">
function go(o)
{
document.getElementById("sb").innerHTML += "打我" + o;
}
function go2(o)
{
document.getElementById("sb").innerHTML += "打我" + o;
iapp.s("sss.sb", document.getElementById("sb").innerHTML);
}
</script>
</head>
<p id="sb">哈哈,你来</p>
</html>
【JavaScript交互裕语言】
用法:
--首先将 web.html 放入用户文件中
--设置浏览器控件显示的html内容
s a = "@web.html"
s b = "utf-8"
fr(a, b, c)
s d = "utf-8"
s e = "text/html"
us(1, "url", c, d, e, f)
--此方法,主要是在JavaScript中写交互代码哦
--JavaScript中交互方法列表(用于交互裕语言):
/.
//调用裕语言模块方法,不带返回变量的
iapp.fn('a.b("' + o + '")');
//调用裕语言模块方法,带返回变量的
var value = iapp.fn2('a.c("' + o + '")', b);
//设置裕语言变量数据
iapp.s(o);
//获取裕语言变量数据
var value = iapp.g(o);
./
说明:
常用于浏览器中的JavaScript代码于iapp代码的互相调用。
注意:
建议尽量使用JavaScript调用交互裕语言,效率较高。裕语言调用执行JavaScript的方法效率要慢数倍。
注意:
本例子需要注意编码,否则将乱码。
html(web.html)文件(utf-8编码)例子:
<html>
<head>
<script type="text/javascript">
//不带返回变量的
function go(o)
{
//调用的是 模块a.myu 中的 b方法
iapp.fn('a.b("' + o + '")');
}
//带返回变量的
//执行模块后,获取一个变量并返回到javascript方法里
function go2(o, b)
{
//调用的是 模块a.myu 中的 c方法
var value = iapp.fn2('a.c("' + o + '")', b);
alert('变量 sss.abc:' + value);
}
//设置全局变量数据
//同理,下面也有设置界面变量、设置局部变量的例子
function ss(o, b)
{
iapp.s(o, b);
}
//获取全局变量数据
//同理,下面也有获取界面变量、获取局部变量的例子
function gs(o)
{
var value = iapp.g(o);
alert('变量 sss.abc:' + value);
}
</script>
</head>
<p><a href="javascript:void(0)" onclick="go('呵呵')">调用裕语言的模块方法</a></p>
<p></p>
<p></p>
<p><a href="javascript:void(0)" onclick="go2('呵呵', 'sss.abc')">调用裕语言的模块方法,并返回sss.abc变量内容</a></p>
<p></p>
<p></p>
<p><a href="javascript:void(0)" onclick="ss('sss.abc', '呵呵')">设置裕语言的sss.abc全局变量数据</a></p>
<p></p>
<p></p>
<p><a href="javascript:void(0)" onclick="gs('sss.abc')">获取裕语言的sss.abc全局变量数据</a></p>
</html>
模块(a.myu)例子:
fn b(a)
//打印出数据
syso(a)
end fn
fn c(a)
//打印出数据
syso(a)
sss abc = "666呵呵"
end fn
【uxf 显示悬浮窗】
用法:
--输入界面名,输入宽度,输入高度,输入对其方式,输入赋值变量
local w = -1
local h = -1
local gravity = "top|right"
v = i:uxf("a.ilua", w, h, gravity)
--输入界面名,输入X显示位置,输入Y显示位置,输入宽度,输入高度,输入类型的窗口,输入对其方式,输入flags,输入format,输入赋值变量
local x = 0
local y = 0
local w = -1
local h = -1
local type = 0
local gravity = "top|right"
local flags = 0
local format = 0
i:uxf("a.ilua", x, y, w, h, type, gravity, flags, format, v)
--刷新悬浮窗口的布局,常用于通过us设置后的刷新
--输入界面根控件的控件对象
i:uxf(v)
--移除悬浮窗口
--输入界面根控件的控件对象,输入标识
i:uxf(v, "del")
--重置悬浮窗的属性
--输入界面根控件的控件对象,输入标识,输入X显示位置,输入Y显示位置,输入宽度,输入高度,输入对其方式
local x = 0
local y = 0
local w = -2
local h = -2
local gravity = "top|right"
i:uxf(v, "set", x, y, w, h, gravity)
--重置悬浮窗的属性
--输入界面根控件的控件对象,输入标识,输入X显示位置,输入Y显示位置,输入宽度,输入高度,输入对其方式
local x = 0
local y = 0
local w = -1
local h = -1
local type = 0
local gravity = "top|right"
local flags = 0
local format = 0
i:uxf(v, "set", x, y, w, h, type, gravity, flags, format)
说明:
常用于显示悬浮窗窗口。
提示:
可通过 local b = i:gvs(v, "a.1") 代码进行获取悬浮窗内的子控件,然后对其进行操作。
提示:
可通过下例代码,控制窗口位置的移动
--更新窗口位置
i:us(v, "x", 100)
i:us(v, "y", 100)
--获取窗口位置
i:ug(v, "x", xx)
i:ug(v, "y", yy)
--通过us 更新后, 需要刷新悬浮窗口的布局
i:uxf(v)
对齐方式:
center:居中
top:顶
bottom:底
left:左
right:右
center_vertical:垂直居中
center_horizontal:水平居中
输入flags:
0 不许获得焦点(编辑框输入法将无法弹出)
1 可以获得焦点,返回键将不可用
【tts 文本转换语音】
用法:
--创建一个TTS对象
--输入赋值对象
local a = i:tts()
--创建一个TTS对象;并且直接设置播放
--输入赋值对象,输入语言代码,输入语速率,输入音高率,输入播放文字(可传入nil)
i:tts(a, "en", "I love you", 1, 1)
--获取TTS对象初始化状态;赋值变量返回 0未完成初始化 1初始化成功 -1初始化失败 -2初始化语言失败 -3当前TTS对象不可用
--输入TTS对象,输入标识,输入赋值变量
local b = i:tts(a, "zt")
syso(b)
--播放文字;模式 0替换以前的任务 1队列追加至后面
--输入TTS对象,输入标识,输入播放文字,输入模式,输入赋值变量
local b = i:tts(a, "st", "I love you", 0)
syso(b)
--文字转换音频文件
--输入TTS对象,输入标识,输入文字,输入保存路径,输入赋值变量
local b = i:tts(a, "ft", "I love you", "123.wav")
syso(b)
--设置语言
--输入TTS对象,输入标识,输入语言代码
i:tts(a, "lg", "en")
--设置语音播放速率。1为正常,值越低语速越慢(0.5是正常的一半),值越大语速越快(2是正常的两倍)
--输入TTS对象,输入标识,输入小数
i:tts(a, "se", 1)
--设置音高率,值越大声音越高音,值越小声音越低音,正常为1.0
--输入TTS对象,输入标识,输入小数
i:tts(a, "ph", 1)
--检查是否TTS正在播放
--输入TTS对象,输入标识
local b = i:tts(a, "ip")
syso(b)
--释放TTS使用的资源
--输入TTS对象,输入标识
i:tts(a, "re")
--停止所有任务
--输入TTS对象,输入标识,输入赋值变量
local b = i:tts(a, "sp")
syso(b)
--检查是否一个可用的TTS对象
--输入TTS对象,输入标识,输入赋值变量
local b = i:tts(a, "is")
syso(b)
说明:
常用于文本转化为音频,并且播放。
语言代码:
系统默认支持语言
美国 en
德国 de
意大利 it
法国 fr需安装第三方语言包(讯飞语音TTS),并且设置语言
日本 ja
韩国 ko
中国 zh
安装与设置中文语言:
下载其中一个
(4.0系统)讯飞语音TTS http://m.yx93.com/app.aspx?id=28515
(2.2系统)讯飞语音TTS http://m.yx93.com/app.aspx?id=28513
安装 讯飞语音TTS
安卓手机》设置》语言和输入法》文本转语音输入》选择 讯飞语音合成 ,默认引擎 讯飞语音合成 , 语言 中文
(设置因为各品牌细节不同,但是都大同小异)
注意事项:
单独TTS对象创建后,需要有一个异步初始化过程,如果创建TTS对象然后直接播放文本将无法成功。需要先完成初始化后,然后播放文本。
注意事项:
文字转语音TTS输出;默认语言状态:完全支持 中文
【blp 录制屏幕】
用法:
local b = "123.mp4"
--输入储存录制文件路径,输入视频宽度,输入视频高度,输入视频码率,输入视频帧率
i:blp(b, 1280, 720, 1024000, 30)
--开始录制
local b = i:blp("st")
syso(b)
--停止录制
local b = i:blp("sp")
syso(b)
--释放资源
local b = i:blp("re")
syso(b)
--判断是否正在录制
local b = i:blp("ip")
syso(b)
说明:
用于手机屏幕录制。
注意:
仅支持系统Android 5.0以及以上才有效果!
Android 5.0以下的系统,无效果!
【otob 转换为字节组】
用法:
--将文件转换为字节组,字节组将为字符串形式返回赋值给“b”
local b = i:otob("%abc.txt")
syso(b)
--将字符串转换为字节组
local b = i:otob("utf-8", "nihao")
syso(b)
--不设置编码
local b = i:otob(nil, "nihao")
说明:
将字符或文件转换为字节组
【btoo 字节组还原】
用法:
local b = i:otob("%abc.txt")
--将字节组转换为文件
--输入字节组,文件路径,是否覆盖
local c = i:btoo(b, "%abc2.txt", true)
local b = i:otob("utf-8", "nihao")
--字节组转换为字符串
local c = i:btoo("utf-8", b)
syso(c)
--不设置编码
local c = i:btoo(nil, b)
说明:
将字节组转换为字符或文件
【sot Socket网络通信】
用法:
--服务端
--服务端口,临时文件目录,接受客户超时,客户连接超时,是否覆盖文件
local b = i:sot(8668, "%iApp/tempSocket", 0, 0, false,
function(st_msG,st_ssR)
--消息内容
syso(st_msG)
--连接对象
syso(st_ssR)
end
)
--客户端
--服务地址,服务端口,服务连接超时,是否覆盖文件
local b = i:sot("192.168.1.100", 8668, 0, false,
function(st_msG,st_ssR)
--消息内容
syso(st_msG)
--连接对象
syso(st_ssR)
end
)
--发送字符串
i:sot(b, "str", "nihao")
--发送文件
i:sot(b, "file", "%abc.txt")
--发送字节组
local c = i:otob("nihao", "utf-8")
i:sot(b, "bt", c)
--关闭释放sot
i:sot(b, "re")
--获取sot是否已释放
local c = i:sot(b, "ip")
--获取ID总数
local c = i:sot(b, "id")
--获取连接对象列表
local c = i:sot(b, "list")
--获取连接对象列表的第一位
local c = i:sot(b, "list", 0)
--获取连接总数
local c = i:sot(b, "size")
--是否允许接受新连接
i:sot(b, "new", true)
说明:
Socket 管理操作。服务端发送消息将批量发送给所有连接。
服务端说明:
要求:
1.能连接公共网络 或 内网
2.拥有固定IP作为客户端连接的目标
3.电脑、手机、平板电脑等设备上运行服务端。
4.可使用iapp在自己的手机上面开发服务端,并运行服务端。
客户端说明:
要求:
1.能连接公共网络 或 内网
2.可使用iapp在自己的手机上面开发客户端,并连接服务端。
常见开发:
使用手机或电脑作为服务端,手机客户端与服务端相互传递文件、数据等。
【sota 单个Socket通信操作】
用法:
--获取连接对象列表的第一位,变量“c”属于单个Socket通信
local c = i:sot(b, "sl", 0)
--获取通信对方的IP
local d = i:sota(c, "ht")
--获取sota是否已释放
local d = i:sota(c, "ip")
--关闭释放sota
i:sota(c, "re")
--获取socket对象
local d = i:sota(c, "socket")
--获取连接对象ID
local d = i:sota(c, "id")
--发送字符串
i:sot(c, "str", "nihao")
--发送文件
i:sot(c, "file", "%abc.txt")
--发送字节组
local d = i:otob("utf-8", "nihao")
i:sot(c, "bt", d)
说明:
常用于单个Socket通信的操作管理
【loadso 加载动态库】
用法:
--比如加载 libabc.so
i:loadso("abc")
说明:
加载SO动态链接库。
【loadjar 加载jar库】
用法:
--比如加载 abc.jar
--返回变量 库对象
local b = i:loadjar("abc.jar")
syso(b)
--比如加载 abc.apk
--包含Activity需要传入true,赋值变量 库对象
local b = i:loadjar("abc.apk", true)
syso(b)
说明:
用于加载一些jar,dex,apk 的 sdk。需要把jar文件导入至项目资源的lib目录里,jar加载过程将联网校验。
如果附带SO动态链接库,需要把SO文件载入至项目资源。
【cls 获取完整接口类】
用法:
--获取一个类,输入完整类名如 java.lang.Math
--赋值变量 类对象
local a = i:cls("java.lang.Math")
syso(a)
--获取一个字符串类,常用类型可直接输入类名如 String
local b = i:cls("String")
syso(b)
--加载SDK abc.jar,并获取SDK里一个类 输入完整类名 com.sdk.abc
local a = i:loadjar("abc.jar")
local c = i:cls(a, "com.sdk.ceshi")
syso(c)
用法:
获取一个类;或从 jar SDK包获取类;
注意:完整类名区分大小写
【clssm 获取类的所有接口】
用法:
local b = i:cls("String")
--获取所有构造函数
local c = i:clssm(b, "init")
--获取所有函数方法
local c = i:clssm(b, "method")
--获取所有变量
local c = i:clssm(b, "field")
说明:
返回一个数组。
【java 调用java代码方法】
用法:
--调用java api java.lang.String.indexOf(String string) 查询字符56 在123456789 中位置
local c = i:cls("String")
local a = i:javax("123456789", c, "indexOf", {"String", "56"})
syso(a)
--初始化一个StringBuilderd
local a = i:javanew("java.lang.StringBuilder", {"String", "12345"})
local b = i:java(a, "java.lang.StringBuilder.append", {"String", "6789"})
local c = i:java(a, "java.lang.StringBuilder.toString")
syso(c)
local jar = i:loadjar("test.jar")
local c1 = i:cls(jar, "com.sdk.ceshi")
--调用静态方法 com.sdk.ceshi类 c 方法
local c = i:javax(nil, c1, "c", {"int", 123})
syso(c)
--调用静态变量 com.sdk.ceshi类 a 变量
local c = i:javags(nil, c1, "a")
syso(c)
--初始化com.sdk.ceshi类
--返回对象变量,输入完整类名或 cls方法的返回变量
local a = i:javanew(c1)
--访问变量,com.sdk.ceshi类 b变量
local c = i:javags(a, c1, "b")
syso(c)
--设置变量,com.sdk.ceshi类 b变量
local c = i:javass(a, c1, "b", "123456")
syso(c)
--设置回调方法
local a = i:javanew("android.widget.TextView", {"Context", activity})
local b = i:java(a, "android.widget.TextView.setText", {"CharSequence", "我是文本控件"})
--注意回调接口类名前面需要加一个“.”,如.android.view.View.OnClickListener
local b = i:java(a, "android.view.View.setOnClickListener", {".android.view.View$OnClickListener", nil},
function(st_mD,st_aS)
--系统赋值
syso(st_mD)
syso(st_aS)
end
)
说明:
支持 android 所有的api;以及 自加载的jar SDK 的 api
注意:完整类名或 方法名 或 变量名 区分大小写
传递参数:
要传递的参数可设置多个,格式为一个数组 { } 括起来的,参数为格式:类名, 值,类名, 值...
activity:默认变量 Activity组件
javax 与 java 方法区别:
javax:第3位参数完整类名,第4位参数方法名。类名可传入 cls方法的赋值变量;总共6位参数
java:第3位参数 完整类名和方法名。总共5位参数。
【javacb 自定义回调】
用法:
local jar = i:loadjar("test.jar")
local c1 = i:cls(jar, "com.ceshi.dex.main")
local o = i:javanew(c1)
local c2 = i:cls(jar, "com.ceshi.dex.main$huidiao")
--设置回调方法
local hd = i:javacb(c2,
function(st_mD,st_aS)
--系统赋值
syso(st_mD)
syso(st_aS)
end
)
--设置回调
local a = i:javax(o, c1, "sethuidiao", {c2, hd})
--调用回调方法
local a = i:javax(o, c1, "get", {"String", "666"})
说明:
常用于设置自定义SDK的回调方法。
【res 安装包资源管理器】
用法:
--获取应用自己的对象
local a = i:res()
--获取其他apk安装包内的资源对象,只支持加载SD卡上的apk
local a = i:res("%abc.apk")
--获取资源
--输入资源对象,输入资源标识或文件名(没后缀),输入资源类型
local b = i:res(a, "ic_launcher", "drawable")
--获取资源ID,打包测试才有效
local b = i:res(a, "ic_launcher", "drawable", false)
--获取 AssetManager 或 Resources 对象
local b = i:res(a, "asset")
local b = i:res(a, "resources")
说明:
可获取的资源类型 drawable、string、color、stringarray、layout
【src 自定义代码】
用法:
--[[
SDK自定义的 com.sdk.ceshia类 源码
package com.sdk;
public class ceshia {
public String cs(String sm)
{
return sm;
}
}
--]]
--初始化SDK自定义的 com.sdk.ceshia类
local a = i:javanew("com.sdk.ceshia")
--将自定义类添加到代码块里
i:src("ceshia", a)
--代码里调用com.sdk.ceshi类 里的这个方法
local b = ceshia:cs("abcde")
syso(b)
说明:
支持可以自己写java 的SDK,封装成代码。然后再自定义代码提示,把自己封装的代码加上去就可以了。
【call 交互式语言调用】
用法:
--输入赋值变量,语言类型,模块m的abc方法,输入参数1,输入参数2
i:call("myu", "m.abc", "nihao", 66)
--输入赋值变量,语言类型,模块mk的abc方法,输入参数1
local a = i:call("mlua", "mk.abcd", 123)
--没有参数的
--输入赋值变量,语言类型,模块mk的abc方法
i:call("mjs", "mk.abcdf")
说明:
用于多语言的代码交互。
注意:
此方法只能调用模块方法,输入是字符串如 m.abc 模块m 的abc方法
注意:
参数数量要与实际模块方法的参数的数量一致。
注意:
三种语言,只有 mlua 可以返回赋值变量,裕语言可以通过设置全局变量变相返回变量, mjs设置赋值变量无效。
【json json数据解析】
用法:
--解析json数据,双引号要加 \ 进行转义
local text = "{"id":1, "name":"xiaobai", "age":16}"
local jo = i:json(text)
--获取id
local a = i:json(jo, "get", "id")
syso(a)
--获取name
local b = i:json(jo, "get", "name")
syso(b)
--获取age
local c = i:json(jo, "get", "age")
syso(c)
--修改age数据
i:json(jo, "set", "age", 20)
--删除id数据
i:json(jo, "del", "id")
--打印json数据
local text = i:json(jo, "json")
syso(text)
--解析json列表数据
local text = "{"userlist":[{"id":1, "name":"niubi", "age":16},{"id":2, "name":"wangba", "age":18},{"id":3, "name":"goudan", "age":17}]}"
local jo = i:json(text)
--打印json数据
local list = i:json(jo, "list", "userlist")
local size = i:json(list, "size")
while size > 0 do
size = size - 1
local item = i:json(list, "data", size)
--获取id
local a = i:json(item, "get", "id")
syso(a)
--获取name
local b = i:json(item, "get", "name")
syso(b)
--获取age
local c = i:json(item, "get", "age")
syso(c)
end
说明:
常用于解析服务器反馈的数据。
【luajava 对象方法】
代码:
--newInstance实例化
--输入类名,构造方法参数
local a = luajava.newInstance(className, ....)
--bindClass绑定类,返回一个 class 类对象
--输入类名
local a = luajava.bindClass(className)
--new, 需配合bindClass实例化对象
local a = luajava.bindClass("java.lang.String")
--输入类对象
local b = luajava.new(a)
--createProxy java接口,可以多个接口同时调用。
local a = luajava.newInstance("java.awt.Button", "execute")
b = {}
function b.actionPerformed(ev)
. . .
end
--输入类名,方法
local c = luajava.createProxy("java.awt.ActionListener", b)
a:addActionListener(c)
【zj 组件控制】
用法:
--如有米广告组件,首先下载有米的组件,并且设置好组件。
--初始化有米SDK,放在第一个界面的载入事件里
--输入赋值变量,标识,发布 ID,密钥,是否开启有米的Log输出(需要换自己的渠道信息)
local a = i:zj("init", {"String", "85aa56a59eac8b3d", "String", "a14006f66f58d5d7", "boolean", true})
--初始化积分墙
--输入赋值变量,标识
local a = i:zj("initjfq")
--展示积分墙
local a = i:zj("jfqgo")
说明:
用于控制组件。