Skip to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

gorodoro

Members
  • Joined

  • Last visited

Everything posted by gorodoro

  1. Просто оставлю это здесь, мало ли, вдруг добавите поддержку в FGX, потому что выглядит вполне себе перспективно, а главное подключается чрезвычайно просто (но что там у неё под капотом, я без понятия, предупреждаю сразу). Возможно, все уже в курсе и один я опять отстал от жизни, но на всякий случай — теперь карту, оказывается, можно хостить одним файлом: Ну, т.е. буквально в корне сайта только индексный файл + сама карта — и больше ничего. Карта векторная, поддерживает всякие навороты (я пока подключил обе темы, светлую и тёмную, но вроде как можно кастомизировать и POI, и UI), у себя развернул так: https://protomaps.com 1️⃣ wget https://github.com/protomaps/go-pmtiles/releases/download/v1.31.2/go-pmtiles_1.31.2_Linux_x86_64.tar.gz 2️⃣ tar -xzf go-pmtiles_1.31.2_Linux_x86_64.tar.gz 3️⃣ wget -O kazakhstan.geojson https://raw.githubusercontent.com/glynnbird/countriesgeojson/master/kazakhstan.geojson 4️⃣ ./pmtiles extract https://build.protomaps.com/20260726.pmtiles kazakhstan.pmtiles --region=kazakhstan.geojson Все версии/даты/названия, разумеется, актуальны на сегодня-завтра, поэтому их лучше брать в первоисточнике: ✅ Загрузчик: https://github.com/protomaps/PMTiles ✅ Карты: https://maps.protomaps.com/builds Пример рабочего индексного файла: <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Карта Казахстана</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maplibre-gl@latest/dist/maplibre-gl.css" /> <style> :root { color-scheme: light dark; } *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } html, body { width: 100%; height: 100%; overflow: hidden; background-color: light-dark(#fff, #000); } #map { position: fixed; inset: 0; width: 100%; height: 100dvh; } .maplibregl-canvas, .maplibregl-canvas-container, #map canvas { outline: none !important; border: none !important; box-shadow: none !important; } </style> </head> <body> <div id="map"></div> <script type="module"> import { Map, NavigationControl, addProtocol } from 'https://cdn.jsdelivr.net/npm/maplibre-gl@latest/+esm'; import { Protocol } from 'https://cdn.jsdelivr.net/npm/pmtiles@latest/+esm'; import layers from 'https://cdn.jsdelivr.net/npm/protomaps-themes-base@latest/+esm'; addProtocol('pmtiles', new Protocol().tile); const createMapStyle = (themeName) => ({ version: 8, glyphs: 'https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf', sprite: `https://protomaps.github.io/basemaps-assets/sprites/v4/${themeName}`, sources: { 'kazakhstan_source': { type: 'vector', url: 'pmtiles://kazakhstan.pmtiles' } }, layers: layers('kazakhstan_source', themeName) }); const themeQuery = window.matchMedia('(prefers-color-scheme: dark)'); const getCurrentTheme = () => themeQuery.matches ? 'dark' : 'light'; const map = new Map({ container: 'map', style: createMapStyle(getCurrentTheme()), center: [71.430411, 51.128201], zoom: 12 }); map.addControl(new NavigationControl()); themeQuery.addEventListener('change', (e) => { const newTheme = e.matches ? 'dark' : 'light'; map.setStyle(createMapStyle(newTheme)); }); </script> </body> </html> Если открыть эту карту на 1080p в 100%, то объём сетевого трафика составит ~300 kB: В целом всё выглядит и работает как самая обычная карта: Возможно, кому-нибудь пригодится, если вдруг потребуется хостить у себя и никому не платить за доступ к карте.
  2. В Assets Manager эти кнопки тоже не работают (в смысле, значение самого поля при нажатии меняют, но на цвет не влияют):
  3. Символы разные Не работают кнопки 🢐 и 🢒
  4. А если на старте ещё такое добавить, то тогда размер кнопки совсем оптимальный получается: procedure TFormMain.fgFormCreate(Sender: TObject); begin fgButton1.Appearance.ContentPadding.SetValues(8, 0, 8, 0, 0, 0); end; Видимо, это как-то связано с тем, что Ярослав ранее говорил:
  5. Я в итоге так сделал: procedure buttonResize(aButton: TfgButton; aSize: single); begin aButton.TextSettings.Font.Size := aSize * TfgAndroidHelper.Activity.getResources.getConfiguration.fontScale; aButton.Realign; var Ls := aButton.MeasureSize(TfgMeasuringSpecification.Unspecified, 0, TfgMeasuringSpecification.Fixed); Ls.Width := aButton.Appearance.ContentPadding.Left + Ls.Width + aButton.Appearance.ContentPadding.Right; Ls.Height := aButton.Appearance.ContentPadding.Top + (aButton.TextSettings.Font.Size * 2) + aButton.Appearance.ContentPadding.Bottom; aButton.Size.SetSizeF(Ls); end; procedure TFormMain.fgApplicationEvents1ApplicationStateChanged(Sender: TObject; const AOldState, ANewState: TfgApplicationState); begin buttonResize(fgButton1, 20); //размер шрифта, разумеется, на своё усмотрение end; Выглядит так: Screen_recording_20250423_190852.mp4 Не самое изящное решение, но всё вроде вполне корректно и пропорционально 🥲
  6. gorodoro replied to gorodoro's topic in Opened
    Это только Android (13 в моём случае). Если есть возможность проверить на iOS — пожалуйста, отпишитесь, как оно себя там ведёт.
  7. gorodoro posted a topic in Opened
    1. Создал темы и сохранил изменения: 2. Прописал нужное в \Templates\Android\styles.xml и сохранил: 3. Включил IsTransparent: 4. Ожидаю, что цвет шрифта в системном заголовке (часы, иконки) будет автоматически переключаться в зависимости от текущей темы (потому что ContentStyle = Auto) : procedure TFormMain.fgSwitch1Changed(Sender: TObject); begin if fgSwitch1.IsChecked then ThemeName := 'Theme Dark' else ThemeName := 'Theme Light'; end; ... однако по факту цвет не меняется: screen-20250320-225849.mp4 Project4.zip
  8. А этот "жест свайпа с левого края экрана" — он по умолчанию работает для всех полноэкранных телефонов, или нужно что-то отдельно настраивать в FGX-приложении (в коде или XML)?
  9. Имейте ввиду: на Android 12 наблюдается такая странная проблема — в тостах вдруг иногда начинает отображаться иконка по умолчанию: Пока спасает только перезагрузка устройства. Исправления до сих пор нет (обновление Android до 12.1 не помогло, ноябрьское обновление сего года — тоже), так что ждём, когда в Google соизволят снизойти и обратить, наконец, своё внимание на соответствующий репорт, которому уже второй годик пошёл... p.s. У кого уже есть Android 13 на руках — отпишитесь, пожалуйста, есть ли там такое, или же проблема присуща исключительно 12-й версии.
  10. Если я правильно понял, то всё вроде ок: document_5453979867391466806.mp4
  11. Можно демку в исходниках?
  12. На Asus Nexus 7 (2012, Android 5.0.0) всё ок: приложение, собранное на 1.15.0.0, работает нормально. На всякий случай:
  13. По поводу csv: есть CSVParser, я его не пробовал лично, но на первый взгляд выглядит вроде прилично (кто разбирается глубже — пусть меня поправит и предложит решение оптимальнее, мне тоже это интересно).
  14. Вижу, что в заказах, но на всякий случай: 2 задачи из трёх точно решаемы самостоятельно, причём довольно легко и быстро. 1. Download file 2. Zip/Unzip (+ password) + 3 часть описания (предыдущие 2 найти можно там же) 3. С парсингом csv, думаю, тоже особых проблем возникнуть не должно Делов на час-два, всё равно ведь рано или поздно придётся разбираться 😉 p.s. Примеры упаковки/распаковки:
  15. +1

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.