add set_args function

This commit is contained in:
Evgeny
2021-08-03 11:40:33 +03:00
parent e42c1950ae
commit c254466953
3 changed files with 39 additions and 0 deletions

View File

@@ -51,6 +51,7 @@ First line<br/>Second line
* `aio:remove_widget(string)` - удаляет с экрана встроенный виджет или виджет-скрипт (внимание: доп. виджеты тоже будут удалены);
* `aio:is_widget_added(string)` - проверяет, добавлен ли виджет на экран;
* `aio:get_args()` - возвращает таблицу аргументов, которые пользователь указал нажав на иконку настроек в режиме редактирования виджета;
* `aio:set_args()` - принудительно устанавливает аргументы скрипта (можно использовать для сохранения настроек скрипта - аргументы не стираются при отключении скрипта);
Если в метаданных виджета есть поле `arguments_help`, его значение будет выведено при редактировании аргументов виджета. Если есть поле `arguments_default` - оно будет использовано для получения дефолтовых аргументов.

13
args-test2.lua Normal file
View File

@@ -0,0 +1,13 @@
-- arguments_help = "The word recorded here will be displayed on the screen."
-- arguments_default = "Word"
function on_resume()
aio:set_args({"Word#1", "Word#2"})
local args = aio:get_args()
if args == nil then
ui:show_text("args is empty")
else
ui:show_text("arg1: "..args[1])
end
end

25
ip-location-widget.lua Normal file
View File

@@ -0,0 +1,25 @@
function on_alarm()
request_ip()
end
function on_network_result(result, code, id)
if id == "ip" then
local location = {
ajson:get_value(result, "object string:latitude"),
ajson:get_value(result, "object string:longitude")
}
request_addr(location)
elseif id == "adr" then
local adr = ajson:get_value(result, "object string:display_name")
ui:show_text(adr)
end
end
function request_ip()
http:get("https://freegeoip.app/json/", "ip")
end
function request_addr(location)
http:get("https://nominatim.openstreetmap.org/reverse?format=json&lat="..location[1].."&lon=".. location[2].."&addressdetails=1", "adr")
end