From a8ec1ce65454d13f7584ce90464fc9df924a4041 Mon Sep 17 00:00:00 2001 From: ua1zbe Date: Tue, 29 Sep 2026 05:12:55 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D0=B0:=20=D0=BC=D0=B5=D0=BD=D1=8E-=D0=BE=D0=BA=D0=BE=D1=88?= =?UTF-8?q?=D0=BA=D0=BE=20=D0=B2=20=D1=88=D0=B0=D0=BF=D0=BA=D0=B5,=20?= =?UTF-8?q?=D1=81=D0=B2=D0=BE=D0=B9=20=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=20?= =?UTF-8?q?=C2=AB=D0=9E=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apk-webview/app/src/main/assets/index.html | 92 +++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/apk-webview/app/src/main/assets/index.html b/apk-webview/app/src/main/assets/index.html index d2c2c80..36b98e3 100644 --- a/apk-webview/app/src/main/assets/index.html +++ b/apk-webview/app/src/main/assets/index.html @@ -55,6 +55,44 @@ .fullbtn:hover{border-color:var(--accent2)} .fullbtn .chev{float:right;transition:.2s;color:var(--muted)} .fullbtn.open .chev{transform:rotate(180deg)} + .fulltitle{display:none;margin:0;padding:14px 12px 2px;font-size:16px;font-weight:700} + + /* строка заголовка: стрелка назад слева, меню справа, название ровно по центру */ + .headwrap{position:relative} + .headrow{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px} + .headrow h1{text-align:center;margin:0;min-width:0} + .iconbtn{display:none;background:var(--card2);border:1px solid var(--line); + color:var(--txt);border-radius:10px;width:38px;height:38px; + font-size:22px;line-height:1;font-family:inherit;cursor:pointer; + align-items:center;justify-content:center;padding:0} + body.app .iconbtn,body.about .iconbtn{display:inline-flex} + /* на главном экране стрелки нет, но место под неё оставляем, иначе съедет центр */ + body.app .iconbtn.back{visibility:hidden} + /* троеточие в круглой кнопке приподнято: рамка остаётся на одной линии с названием */ + #navMenu{padding-bottom:7px} + .iconbtn:active{border-color:var(--accent2)} + + /* выпадающее окошко: висит поверх содержимого, прижато к кнопке меню */ + .menu{position:absolute;top:calc(100% + 8px);right:0;z-index:60; + width:min(260px,100%);background:var(--card);border:1px solid var(--line); + border-radius:14px;overflow:hidden;margin:0; + box-shadow:0 18px 44px rgba(0,0,0,.6)} + .menu[hidden]{display:none} + .menuitem{display:block;width:100%;text-align:left;padding:13px 14px;border:0; + background:transparent;color:var(--txt);font-size:15px;font-weight:600; + font-family:inherit;cursor:pointer} + .menuitem:hover{background:var(--card2)} + + /* экран «О приложении» */ + .aboutcard{display:none;background:var(--card);border:1px solid var(--line); + border-radius:14px;padding:16px;margin-bottom:10px} + body.about .aboutcard{display:block} + body.about .pickers,body.about .where,body.about .dir, + body.about #fullTable,body.about .fullbtn{display:none} + .aboutcard h2{margin:0 0 4px;font-size:17px} + .aboutcard .ver{color:var(--muted);font-size:14px;margin-bottom:12px} + .aboutcard p{margin:0 0 10px;font-size:14px;line-height:1.5} + .aboutcard p.muted{color:var(--muted);font-size:13px} .tablecard{background:var(--card);border:1px solid var(--line);border-radius:14px; overflow:hidden;display:none;margin-bottom:8px} @@ -85,7 +123,17 @@
-

Автобус №127

+
+
+ +

Автобус №127

+ +
+ + +
Кандалакша — Полярные Зори — Зашеек
--:--:-- МСК
@@ -103,6 +151,7 @@
+

Полное расписание

@@ -117,6 +166,18 @@
+
+

О приложении

+
+

Расписание автобуса №127 по маршруту Кандалакша — Полярные Зори — Зашеек.

+

Ближайшие рейсы считаются по московскому времени и обновляются каждые 30 секунд. + Полное расписание раскрывается прямо на этом экране — кнопкой под списком рейсов, + с переключением между буднями, субботой и воскресеньем.

+

Расписание действует с 30.09.2020. Время московское (МСК).

+

Пуш-уведомления приходят через RuStore Push — для этого нужен + установленный и авторизованный RuStore на устройстве.

+
+
@@ -346,6 +407,35 @@ document.getElementById("fullBtn").addEventListener("click",()=>{ b.classList.toggle("open", !open); }); +// Режим показа задаётся якорью в адресе: +// (пусто) — браузер; +// #app — главный экран приложения; +// #about — окно «О приложении». +// В приложении (не в браузере) страница дёргает нативный код через объект Bus. +const MODE = location.hash.replace("#","") || "web"; +const NATIVE = MODE !== "web" && typeof Bus !== "undefined"; + +document.body.classList.add(MODE); +if (MODE === "about" && NATIVE) { + // версию берём из приложения, чтобы не расходилась со сборкой + const v = document.getElementById("aboutVer"); + if (Bus.version && Bus.version()) v.textContent = "Версия " + Bus.version(); +} + +if (NATIVE) { + const menuBox = document.getElementById("menuBox"); + const closeMenu = () => { menuBox.hidden = true; }; + document.getElementById("navMenu").addEventListener("click",e=>{ + e.stopPropagation(); + menuBox.hidden = !menuBox.hidden; + }); + document.getElementById("navBack").addEventListener("click",()=>Bus.goBack()); + document.getElementById("mAbout").addEventListener("click",()=>Bus.openAbout()); + document.addEventListener("click",e=>{ + if (!e.target.closest(".menu") && !e.target.closest("#navMenu")) closeMenu(); + }); +} + let activeDay = todayKey(); // по умолчанию — реальный день недели selectDay(activeDay); tickClock(); renderDay(); render();