01 — Dla twórców aplikacji

Osadź mapę wydarzenia w swojej aplikacji

Jeśli tworzysz aplikację wydarzenia, nie musisz budować mapy. Osadź mapę STUMaps w WebView, komunikuj się z nią przez niewielki most JavaScript i otwieraj ją linkami głębokimi.

02 — WebView

Osadzenie w WebView w czterech krokach

  1. Otwórz adres mapy

    Załaduj adres mapy wydarzenia w WKWebView (iOS), WebView (Android) lub react-native-webview. Dodaj ?lang=, aby język mapy zgadzał się z językiem aplikacji.

  2. Zarejestruj obsługę wiadomości

    Dodaj message handler o nazwie z konfiguracji mapy (iOS) albo interfejs JavaScript (Android); React Native dostaje onMessage.

  3. Poczekaj na „ready”

    Mapa wysyła ready z wersją mostu, gdy jest gotowa na polecenia.

  4. Wywołuj i nasłuchuj

    Otwieraj miejsca i wyznaczaj trasy z natywnych ekranów; reaguj na zdarzenia z mapy.

03 — JavaScript

Most JavaScript

Mapa udostępnia w window obiekt z trzema poleceniami. Każde zwraca false, gdy miejsce lub język są nieznane.

const map = window.NoctaraRunMap;      // name from the map config
map.open('water-5');                    // true | false
map.route('tram-wawel-01', 'start');
map.setLang('pl');

// iOS: webkit.messageHandlers[...]  Android: JavaScript interface
// React Native: ReactNativeWebView.postMessage
{ source: 'noctara-run-map', type: 'route_built', payload: { from, to, meters, seconds, floors } }

Zdarzenia do aplikacji: ready, poi_opened, route_built (z metrami, sekundami i piętrami), share_image i share_link — aplikacja może użyć własnego okna udostępniania.

05 — WKWebView · Android WebView

Ograniczenia, o których mówimy wprost

Trzy rzeczy, których WebView nie zrobi sam — i jak je rozwiązujemy.

  • Web push nie działa w WebView

    Powiadomienia push wysyła Twoja aplikacja. Mapa udostępnia API lub webhook, przez które Twój serwis push może wysłać komunikaty; konfigurujemy to w każdym projekcie.

  • Offline w iOS WKWebView wymaga App-Bound Domains

    Service worker, dzięki któremu mapa działa offline, uruchamia się w WKWebView tylko dla domen wpisanych w aplikacji jako App-Bound Domains. Bez nich mapa działa online.

  • Lokalizację i aparat przyznaje aplikacja

    WebView może użyć lokalizacji lub aparatu (do kodów QR) tylko wtedy, gdy aplikacja ma uprawnienie i przekazuje je do WebView.

Mapa wydarzenia w aplikacji: checklista WebView

06 — FAQ

Pytania

Czy mapa wymaga SDK?

Nie. To strona internetowa; most to zwykłe wiadomości JavaScript między stroną a aplikacją.

Czy mapa może pasować do wyglądu naszej aplikacji?

Kolory jasnego i ciemnego motywu, czcionki, logo i słownictwo ustawia się w konfiguracji mapy.

A jeśli aplikacja jest w React Native?

Użyj react-native-webview: mapa wysyła zdarzenia do ReactNativeWebView, a most wywołujesz przez injectJavaScript.

Meta

Masz teren, któremu przyda się mapa?

Prześlij plan i daty, a odpowiemy, czego wymagałaby mapa dla Twojego terenu.