Kupte si domény LanoveCentrum.net, LanoveAktivity.cz, Lanove-Centrum.cz, LanovePrekazky.cz
Zobrazují se odpovědi 1 až 6 z 6

Android a iOS, push notifikacie, FCM, webview

  1. cavte, mate prosim napad ako z aplikacii, ktore pozostavaju z WebView dostat na server registration id kvoli push notifikaciam cez FCM? Pointa je ta, ze to potrebujem dostat az ked sa user prihlasi na webe, ktory ma vo webview, aby som to s nim vedel sparovat. Takze idealne upravit kazdy odchadzajuci request z webview a pridat reg. id napr. do hlavicky, na androide, som nejake riesenia videl, na ios sa to udajne neda. Diky.

  2. Co se právě děje na Webtrhu?
  3. Tohle jsme v jedné aplikaci řešili.

    V podstatě si to představ tak, že pomocí Ajaxu ve chvíli registrace vyvoláš příkaz v té nativní části. Stačí ti zavolat po registraci pomocí Ajaxu nějakou URL, tj. například my-app://[registration-id] (můžeš použít i vlastní schéma a předat si ID uživatele).

    U toho WebView potom naimplementuješ vlastní WebViewClient a v něm si odchytíš tuto URL v shouldOverrideUrlLoading a spustíš registraci k push notifikacím. Jakmile získáš FCM ID, tak si ho můžeš na pozadí poslat na server spolu s tím ID uživatele. Vše ostatní přes shouldOverrideUrlLoading pustíš dál, takže pro vše ostatní WebView funguje normálně a nemusíš vůbec nic měnit.

    U iOS se dá udělat defakto přesně to stejné, též jsme to dělali.

  4. Citace Původně odeslal vaclav.hodek Zobrazit příspěvek
    Tohle jsme v jedné aplikaci řešili.

    V podstatě si to představ tak, že pomocí Ajaxu ve chvíli registrace vyvoláš příkaz v té nativní části. Stačí ti zavolat po registraci pomocí Ajaxu nějakou URL, tj. například my-app://[registration-id] (můžeš použít i vlastní schéma a předat si ID uživatele).

    U toho WebView potom naimplementuješ vlastní WebViewClient a v něm si odchytíš tuto URL v shouldOverrideUrlLoading a spustíš registraci k push notifikacím. Jakmile získáš FCM ID, tak si ho můžeš na pozadí poslat na server spolu s tím ID uživatele. Vše ostatní přes shouldOverrideUrlLoading pustíš dál, takže pro vše ostatní WebView funguje normálně a nemusíš vůbec nic měnit.

    U iOS se dá udělat defakto přesně to stejné, též jsme to dělali.
    skvele dakujem. Nahodou nejake ukazky kodu k tomu nemas prosim ta? (vobec neprogramujem android ani ios appky, len som v ramci teamu dostal upravit uz existujuce...)

  5. Citace Původně odeslal matto Zobrazit příspěvek
    skvele dakujem. Nahodou nejake ukazky kodu k tomu nemas prosim ta? (vobec neprogramujem android ani ios appky, len som v ramci teamu dostal upravit uz existujuce...)
    No tohle bude u Androidu složitější - to musíš naimplementovat kompletně včetně broadcast receiveru, když přijde notifikace, atd. Tj. to není na pár řádků kódu.

  6. Citace Původně odeslal vaclav.hodek Zobrazit příspěvek
    No tohle bude u Androidu složitější - to musíš naimplementovat kompletně včetně broadcast receiveru, když přijde notifikace, atd. Tj. to není na pár řádků kódu.
    jasne chapem, prijmanie notifikacie by malo byt v pohode - ked je appka na pozadi riesene je to automaticky, ked je na popredi, tak examplov na toto je kopec. Ale to posielanie registration id je teda oriesok...

  7. Citace Původně odeslal matto Zobrazit příspěvek
    jasne chapem, prijmanie notifikacie by malo byt v pohode - ked je appka na pozadi riesene je to automaticky, ked je na popredi, tak examplov na toto je kopec. Ale to posielanie registration id je teda oriesok...
    Získání toho ID je poměrně jednoduché (viz např. https://stackoverflow.com/questions/...using-firebase). Jak ho máš, tak dostat ho na server už není tak pracné. Buď to můžeš udělat nativně a nebo si to můžeš předat do té své webové aplikace běžící ve WebView.

    Např. takto:

    Ve webové aplikaci máš něco jako:
    <script>
    function tadyMasId(id) {
    window.alert(id);
    }
    </script>

    A v Androidu:

    Java: webView.loadUrl("javascript:tadyMasId('" + fcmId + "')");

    Kotlin: webView.loadUrl("javascript:tadyMasId('$fcmId')")

Hostujeme u Server powered by TELE3