脚本
lancex
你可以使用 JavaScript 来扩展 LanceX 的能力。
公共 API
$done() 函数
由于所有脚本都是异步运行的,即使脚本不需要返回结果,也应当调用 $done() 来表示执行完成。否则脚本会因为超时而打印一条警告。
基本信息
$lancex
该对象表示你正处于 LanceX 的运行环境中。
持久化存储
$persistentStore.write(data<String>, [key<String>])
永久保存数据。只允许字符串。
$persistentStore.read([key<String>])
获取已保存的数据。返回一个字符串或 null。
HTTP 请求
$httpClient.post(URL<String> or options<Object>, callback<Function>)
发起一个 HTTP POST 请求。第一个参数可以是 URL 或对象。一个示例对象可能是这样的:
{
url: "http://www.example.com/",
headers: {
"Content-Type": "application/json"
},
body: "{}",
timeout: 5,
callback: callback(error, response, data) {
}
}
url 始终是必填项。body 可以是字符串或对象。当传入对象时,会被编码为 JSON 字符串,并自动将 Content-Type 设置为 application/json。
类似的函数:$httpClient.get、$httpClient.put、$httpClient.delete、$httpClient.head、$httpClient.options、$httpClient.patch。
fetch(URL<String>, options<Object>)
这是 Fetch API 的一个实现,例如
fetch("http://www.example.com/",{
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: "{}"
}).then(v=>v.text())
.then(v=>console.log(v));
实用工具
console.log(message<String>)
写入 LanceX 日志文件。类似的函数:console.warn、console.error、console.info。
setTimeout(function[, delay])
与浏览器中的 setTimeout 相同。类似的函数:setInterval。
$notification.post(title<String>, subtitle<String>, body<String>, info<Object>)
发送一条通知。使用前请先打开允许通知。info 允许你在用户点击通知时打开一个 URL。例如:
{
"open-url" : "https://www.example.com"
}