Zadejte hledaný výraz...

Android a iOS, push notifikacie, FCM, webview

---
verified
rating uzivatele
(6 hodnocení)
29. 7. 2018 17:25:39
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.
29. 7. 2018 17:25:39
https://webtrh.cz/diskuse/android-a-ios-push-notifikacie-fcm-webview/#reply1358588
Václav Hodek
verified
rating uzivatele
(9 hodnocení)
29. 7. 2018 19:21:43
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:// (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.
29. 7. 2018 19:21:43
https://webtrh.cz/diskuse/android-a-ios-push-notifikacie-fcm-webview/#reply1358587
---
verified
rating uzivatele
(6 hodnocení)
30. 7. 2018 05:45:57
Napsal vaclav.hodek;1476946
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:// (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...)
30. 7. 2018 05:45:57
https://webtrh.cz/diskuse/android-a-ios-push-notifikacie-fcm-webview/#reply1358586
Václav Hodek
verified
rating uzivatele
(9 hodnocení)
30. 7. 2018 19:26:20
Napsal matto;1477025
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.
30. 7. 2018 19:26:20
https://webtrh.cz/diskuse/android-a-ios-push-notifikacie-fcm-webview/#reply1358585
---
verified
rating uzivatele
(6 hodnocení)
1. 8. 2018 13:39:35
Napsal vaclav.hodek;1477151
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...
1. 8. 2018 13:39:35
https://webtrh.cz/diskuse/android-a-ios-push-notifikacie-fcm-webview/#reply1358584
Václav Hodek
verified
rating uzivatele
(9 hodnocení)
1. 8. 2018 21:44:35
Napsal matto;1477456
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/37329917/getting-gcm-registration-id-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:
A v Androidu:
Java: webView.loadUrl("javascript:tadyMasId('" + fcmId + "')");
Kotlin: webView.loadUrl("javascript:tadyMasId('$fcmId')")
1. 8. 2018 21:44:35
https://webtrh.cz/diskuse/android-a-ios-push-notifikacie-fcm-webview/#reply1358583
Pro odpověď se přihlašte.
Přihlásit