- 12
- 77
WebViews
(android webview like a CEF)
Библиотека для создания простых браузеров/интерфейсов (используя HTML, CSS, JS) с помощью Java & Android WebView
В основе для подгрузки Java кода используется JNI C API с помощью библиотеки android от OSPx
Функции
(android webview like a CEF)
Библиотека для создания простых браузеров/интерфейсов (используя HTML, CSS, JS) с помощью Java & Android WebView
В основе для подгрузки Java кода используется JNI C API с помощью библиотеки android от OSPx
Функции
Функция | Описание | Пример использования |
---|---|---|
createBrowser(id, url) | Создает браузер с заданным ID и URL |
Lua:
|
createBrowserFromFile(id, file) | Создает браузер, загружая HTML-файл локально (с папки monetloader) |
Lua:
|
deleteBrowser(id) | Удаляет браузер по ID |
Lua:
|
setVisible(id, bool) | Показывает или скрывает браузер |
Lua:
|
setClickable(id, bool) | Делает браузер кликабельным/некликабельным (клики не доходят до игры) |
Lua:
|
setClickableAsync(id, bool) | Асинхронно переключает кликабельность (в Java отправляются только собранные клики с onTouch, соответственно клики доходят и до игры, и до браузера) |
Lua:
|
setPos(id, x, y) | Устанавливает позицию браузера |
Lua:
|
setSize(id, width, height) | Устанавливает размер браузера |
Lua:
|
changeUrl(id, url) | Меняет URL текущего браузера |
Lua:
|
executeJS(id, script) | Выполняет JavaScript в браузере |
Lua:
|
getJSValue(id, script) | Выполняет JS и возвращает результат как строку |
Lua:
|
showCloseButton(id, bool) | Показывает или скрывает кнопку закрытия (в левом углу экрана) |
Lua:
|
setSetting(id, name, bool) | Устанавливает настройку (WebSettings getSettings()) |
Lua:
|
addLog(msg) | Добавляет запись в лог webviews.log |
Lua:
|
sendClick(id, type, clickid, x, y) | Отправляет клик в браузер по координатам (используется для setClickableAsync) |
Lua:
|
canGoForward(id) | Проверяет возможность перейти вперед у браузера |
Lua:
|
canGoBack(id) | Проверяет возможность перейти назад у браузера |
Lua:
|
goForward(id) | Переходит вперед в браузере |
Lua:
|
goBack(id) | Переходит назад в браузере |
Lua:
|
getStatus(id) | Проверяет загружен ли браузер |
Lua:
|
getVersion() | Возвращает версию библиотеки (JSON) |
Lua:
|
getBrowsers() | Возвращает список браузеров (JSON) |
Lua:
|
getScreen(id) | Возвращает изображение экрана браузера (не доделано и нестабильно. при вызове только сохраняет текущий кадр и отдает только при следующем вызове, в base64) |
Lua:
|
restartCallback() | Перезапускает callback с другим портом (если onAction не работает) |
Lua:
|
Общий callback - lib.onAction(data)
Основные значения - data.type & data.browserid
Основные значения - data.type & data.browserid
data.type | Описание | Пример действия |
---|---|---|
"PING" | Проверка состояния (если data.msg == "STATUS_OK") |
Lua:
|
"WV_ANSWER" | Ответ из браузера (console.log) |
Lua:
|
"WV_DIE" | Браузер умер (встречается часто, и к сожалению полное состояние восстановить невозможно, но основные данные возвращаются) |
Lua:
|
"WV_ERROR" | Ошибка браузера |
Lua:
|
"WV_CLOSE" | Пользователь нажал на кнопку закрытия (showCloseButton) |
Lua:
|
"WV_LOADED" | Браузер загрузился |
Lua:
|
"WV_PROGRESS" | Этап загрузки браузера |
Lua:
|
Примерный скрипт с обработчиком:
callback:
local lib = require("webviews")
function lib.onAction(data)
if data.type == "PING" then
if data.msg == "STATUS_OK" then
print("Скрипт доступен к работе")
lib.createBrowser(0, "https://example.com")
lib.setVisible(0, true)
lib.setClickable(0, true)
lib.showCloseButton(0, true)
end
elseif data.type == "WV_ANSWER" then
print("Сообщение с JS:", data.msg)
elseif data.type == "WV_DIE" then
local browser = cjson.decode(data.msg)
lib.deleteBrowser(data.browserid)
lib.setPos(data.browserid, browser.x, browser.y)
lib.setSize(data.browserid, browser.width, browser.height)
lib.createBrowser(data.browserid, browser.url)
lib.setVisible(data.browserid, browser.visible)
elseif data.type == "WV_ERROR" then
error(data.msg)
elseif data.type == "WV_CLOSE" then
print("Браузер "..data.browserid.." закрыт")
lib.deleteBrowser(data.browserid)
elseif data.type == "WV_LOADED" then
print("Браузер с URL: "..data.msg.." доступен к работе")
elseif data.type == "WV_PROGRESS" then
print("Браузер загружен на "..data.msg.."%")
end
end
Видео с работой браузеров:
Установка:
Папку lib с архива переместить в папку monetloader
Архив содержит сразу и android и webviews библиотеки
Вложения
Последнее редактирование: