add getLocation and showButtons functions

This commit is contained in:
Evgeny
2021-07-29 10:34:59 +03:00
parent a4803268de
commit 51cf025a14
3 changed files with 22 additions and 4 deletions

View File

@@ -1,7 +1,7 @@
# Функции (колбеки) жизненного цикла
* `onResume()` - вызывается при каждом возрате на рабочий стол;
* `onAlarm()` - вывызвается при возврате на рабочий стол при условии, что с прошлого вызова прошло больше 30 минут;
* `onResume()` - вызывается при каждом возврате на рабочий стол;
* `onAlarm()` - вызывается при возврате на рабочий стол при условии, что с прошлого вызова прошло больше 30 минут;
* `onTick()` - вызывается каждую секунду пока лаунчер находится на экране.
Для большинства сетевых скриптов (загрузка и показ значений) следует использовать `onAlarm`. Использование других функций может привести к блокировке вашего IP.
@@ -17,13 +17,17 @@
* `ui:showText(string)` - выводит в виджет обычный текст; повторный вызов стирает предыдущий текст;
* `ui:showLines(table)` - выводит список строк, в качестве аргумента принимает таблицу строк;
* `ui:showLinesWithAuthors(table, table)` - выводит список строк с отправителем (на манер почтового виджета); первая таблица - сами строки, вторая - соответствующие им отправители; таблицы должны быть одинакового размера;
* `ui:showButtons(table)` - выводит список кнопок; аргумент - таблица строк;
* `ui:showProgressBar(text, currentValue, maxValue)` - показывает прогресс бар;
* `ui:showToast(string)` - показывает информационное сообщение в стиле Android;
При нажатии любого элемента интерфейса будет выполнен колбек `onClick(number)`, где number - это порядковый номер элемента. Например, если вы используете `ui:showButtons` для показа трех кнопок, то при нажатии первой кнопки будет вызван `onClick` с аргументом 1, второй - с аргументов 2 и так далее. Если элемент на экране всего один - аргумент всегда будет равен единицы и его можно будет опустить.
# Системные функции
* `system:openApp(string)` - открывает приложение, имя пакета которого указано в аргументе;
* `system:openBrowser(string)` - открывает указанный URL в бразуере или в приложении, умеющем обрабатывать данный тип URL.
* `system:openBrowser(string)` - открывает указанный URL в браузере или в приложении, умеющем обрабатывать данный тип URL.
* `system:getLocation()` - возвращает сохраненнное местоположение в таблице с двумя значениями (запрос местоположения НЕ выполняется, используется значение, сохраненное системой ранее).
# Функции обработки данных
@@ -42,7 +46,7 @@
}
```
Необходимо излечь из него строку "joke". По тексту JSON видно, что эта строка содержится внутри объекта "value", а сам этот объект находится внутри основного объекта JSON. Другими словами чтобы излечь нужную строку необходимо "открыть" основной объект JSON, затем "открыть" объект "value" и излечь из него строку "joke". В коде это будет выглядеть так:
Необходимо извлечь из него строку "joke". По тексту JSON видно, что эта строка содержится внутри объекта "value", а сам этот объект находится внутри основного объекта JSON. Другими словами чтобы извлечь нужную строку необходимо "открыть" основной объект JSON, затем "открыть" объект "value" и извлечь из него строку "joke". В коде это будет выглядеть так:
```
local joke = json:getValue(result, "object object:value string:joke")

10
app_buttons_sample.lua Normal file
View File

@@ -0,0 +1,10 @@
function onResume()
appsNames = { "Telegram", "WhatsApp", "Google PLay" }
appsPkgs = { "org.telegram.messenger.web", "com.whatsapp", "com.android.vending" }
ui:showButtons(appsNames)
end
function onClick(idx)
system:openApp(appsPkgs[idx])
end

4
location-widget.lua Normal file
View File

@@ -0,0 +1,4 @@
function onResume()
local location = system:getLocation()
ui:showText(location[1].." "..location[2])
end