Карта: экран на VK Картах с положением автобусов по расписанию
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user