logo
24.10.2020 21:35
1
Rád bych se zeptal, jestli někdo náhodou neví, zda je nějak technicky řešitelná následující věc. Mám appku na Androidu, která pomocí WebView zobrazuje obsah z webu. Když dojde k narušení spojení, tak tahle appka zobrazí error page, na které je napsáno něco jako "Webová stránka není k dispozici" plus je tam taky URL. Potřeboval bych místo téhle error stránky zobrazit nějakou jinou, jednoduchou, kde nebude to URL.

Našel jsem na SO tenhle článek
android - How to edit or create custom error page for WebView? - Stack Overflow

Jelikož já sám aplikace nepíšu, tak nedokážu posoudit, jestli z článku vyplývá, že to jde nebo nejde. Zdá se mi, že ta error stránka tam zřejmě problikne, i když je přepsanej ten error handler.

Řešil jste někdo tuhle věc? Máte zkušenost, že to jde nějak vyřešit a nebo nejde? Nejde mi o podrobnej návod, spíš jestli to je vůbec nějak řešitelné.
24.10.2020 23:15
2
už je to nějakou dobu co jsem to viděl, řešení není přímočaré.

Základem je si sám zjištovat, jestli je k dispozici internet a pak případně ani webview nevolat. V rámci webview mohou odchytit error a případně vykreslit svoji lokální stránku, ale dochází tam k prodlevě a blbému probliknutí.

Je to velký kompromis a myslím, že ani nový android to nemá lepší.
25.10.2020 09:57
3
Díky. Nevíte třeba někdo, jaká je ohledně tohoto situace na iOS? Jde tam nějak přesměrovat na custom stránku, byť nedokonale nebo to tam funguje nějak jinak?
25.10.2020 11:17
4
Tam to funguje úplně stejně a dá se to udělat i bez probliknutí.

Dostupnost internetu si můžěš kontrolovat před zobrazením, ale na chyby můžeš reagovat až nastanou, api je asynchronní, takže to je někdy trochu experimentování, záleží, jaké přesně chyby chceš chytat
25.10.2020 16:21
5
Jasné, rozumím. O kontrolu internetu mi nejde, žádná kontrola na stopro nezajistí, že další request nezpůsobí chybu. Jde mi o to, aby aplikace NIKDY nezobrazovala nativní error stránku s URL, nýbrž moji stránku s nějakým rozumným textem. Když to nejde bez probliku, tak se nedá nic dělat, bude to s problikem. Pokud to budu ještě nějak preventivně kontrolovat, například pomocí AJAXu před submitem, tak by ta chyba měla nastávat jen vzácně.
Jde hlavně o skrytí toho URL, ale i obecně té systémové chybové stránky.

Abych to zrekapituloval, tak tohle lze na Androidu (webview) i iOS (MkWebView) dosáhnout podobným způsobem, tj. nějakým error handlerem, akorát na Androidu to bude s problikem. Ale dají se takhle handlovat všechny chyby, které vedou na tu nativní stránku. Je to tak?
25.10.2020 16:56
6
odchytáváš na obou vše od ssl chyb po chyby jednotlivých obrázků a dalších načtených zdrojů, takže kontrolu nad tím máš slušnou
25.10.2020 17:08
7
Díky tobě za užitečné odpovědi.