From 66688630a30e899e6f77d62acf1f1987f41894e9 Mon Sep 17 00:00:00 2001 From: ua1zbe Date: Tue, 29 Sep 2026 08:14:53 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=B0=D1=80=D1=82=D0=B0:=20=D1=8D=D0=BA?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=20=D0=BD=D0=B0=20VK=20=D0=9A=D0=B0=D1=80?= =?UTF-8?q?=D1=82=D0=B0=D1=85=20=D1=81=20=D0=BF=D0=BE=D0=BB=D0=BE=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=B0=D0=B2=D1=82=D0=BE=D0=B1?= =?UTF-8?q?=D1=83=D1=81=D0=BE=D0=B2=20=D0=BF=D0=BE=20=D1=80=D0=B0=D1=81?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/ru/ua1zbe/bus127/Webs.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Webs.java b/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Webs.java index 17b98dd..d1be5a6 100644 --- a/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Webs.java +++ b/apk-webview/app/src/main/java/ru/ua1zbe/bus127/Webs.java @@ -1,6 +1,9 @@ package ru.ua1zbe.bus127; import android.app.Activity; +import android.util.Log; +import android.webkit.ConsoleMessage; +import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -10,6 +13,8 @@ final class Webs { /** Главный экран: полное расписание раскрывается прямо на странице. */ static final String URL_MAIN = "file:///android_asset/index.html#app"; + /** Карта маршрута с положением автобуса. */ + static final String URL_MAP = "file:///android_asset/index.html#map"; /** Описание приложения и версия. */ static final String URL_ABOUT = "file:///android_asset/index.html#about"; @@ -22,7 +27,25 @@ final class Webs { settings.setJavaScriptEnabled(true); settings.setDomStorageEnabled(true); settings.setSupportZoom(false); + // Страница лежит в assets и грузится по file://, а карта (#map) тянет + // стиль, тайлы и шрифты VK Карт с https. Без этого file://-страница + // не может обращаться к внешним адресам, и карта остаётся пустой. + settings.setAllowUniversalAccessFromFileURLs(true); webView.setWebViewClient(new WebViewClient()); + webView.setWebChromeClient(new WebChromeClient() { + // страница — это весь интерфейс, поэтому её ошибки и предупреждения + // полезно видеть в logcat: иначе сбой на экране выглядит как «ничего не работает» + @Override + public boolean onConsoleMessage(ConsoleMessage m) { + if (m.messageLevel() == ConsoleMessage.MessageLevel.ERROR + || m.messageLevel() == ConsoleMessage.MessageLevel.WARNING) { + Log.w("Bus127JS", m.messageLevel() + " " + m.message() + + " (" + m.sourceId() + ":" + m.lineNumber() + ")"); + return true; + } + return false; + } + }); webView.addJavascriptInterface(new BusBridge(activity), "Bus"); webView.loadUrl(url); return webView;