- 12
- 86
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 библиотеки
Вложения
Последнее редактирование: