自定义指令 - 测试

Posted by Vove on January 29, 2019

准备

现在利用刚刚的例子来实战下, 最好配合VSCode插件来使用。

  1. 新建全局指令

设置正则信息@{city}的?天气(怎么样)?, 脚本语言为lua,

1
2
3
4
5
6
-- 仅为示例,并无实现
city = argMap['city'] 
speak('正在获取' ..city ..'的天气') 
print(city) -- 将匹配的结果 打印到VSCode控制台
toast(city) -- 将匹配的结果 在手机端显示消息

保存。

测试指令

  1. 可以通过VSCode插件传递命令北京天气(图未更新)
  2. 唤醒后使用语音输入北京天气.(图未更新)

获取命令参数

命令参数存放于全局变量argMap中。

脚本编写

到了这里, 你可以学习javascript,或者lua, 由于javascript更为常见,建议学习前者(网页编程部分无需学习)。

这里推荐一些网站学习基础语法 JavaScript 教程

学习基础语法函数相关后, 可以阅读脚本API, 来了解脚本在安卓端做的事情。

另外参考高级手册高级手册(2)

另外, 目前APP内指令大部分都开源在Github, 欢迎访问

脚本分享

当指令能够解决某些实际问题时, 你可以将它共享到云端, 审核后,每个人都可获取到这个技能.

VSCode代码测试注意事项

如果你看过App内指令脚本,一般在开头会发现有如下格式:

1
2
3
4
5
6
7
8
if runtime.DEBUG then -- 如果是在测试环境下,argMap是空的
   argMap['city'] = {'北京'}  -- 假设参数
   runtime.command = '北京天气'  -- 用户命令

   -- 如果是应用内操作,可能还需要加上
   -- waitForApp(system.openAppByWord("支付宝", true)) -- 等待打开应用, 使用应用名或包名

end

由于应用内指令在执行脚本前可自动开启应用,在脚本中无需再执行打开应用的操作。 此外,新建应用内指令可选择是否自动开启应用,开满足自己的指令需求。

继续阅读: 视图搜索与操作示例