#7 Debugowanie Webview
Cześć!
Debugowanie aplikacji webowych, które są umieszczone w aplikacjach mobilnych jako webview jest dość problematyczne, szczególnie dla iOS i na tym skupię się dzisiaj.
Debugowanie w Androidzie
Zacznę od robocika, bo jest to znacznie łatwiejsze.
W przypadku Androida wystarczy:
- telefon z zainstalowaną aplikacją w wersji z włączoną opcją debugowania - po odpowiednią wersję lub telefon z zainstalowaną wersją musisz się zgłosić do naszych testerów 😎
- odpowiedni kabel 😀
- aktywacja Debugowanie USB w opcjach programistycznych w ustawieniach
Następnie w Chrome wpisujemy chrome://inspect
i zobaczysz webview, który masz włączony w aplikacji. Klikasz Inspect
i… gotowe. Rób co chcesz, jak ze zwykłą stroną 😀
Debugowanie w iOS
Z 🍎 jest trochę gorzej. Niestety Safari pozwala na debugowanie tylko i wyłącznie stron, które mamy otwarte w przeglądarce.
Potrzebujesz:
- komputer z systemem Apple 😈
- xcode wraz z symulatorami, na których chcesz sprawdzić. Domyślnie jest zainstalowany symulator z najnowszą wersją iOS.
- aplikację, w której jest odpalany webview
Od razu nasuwa się na myśl pytanie skąd wezmę aplikację? Są co najmniej dwa wyjścia: możesz napisać sam 🙉 lub użyć gotowca 🥷. Zdecydowanie łatwiejsza wydaje się druga ścieżka i jeśli nie masz doświadczenia z xcode to wystarczy. Poniższy tutorial oparłem o aplikację, która jest dołączona do maila 🙂
Po załadowanie projektu do xcode musisz ustawić minimalną wymaganą wersję iOS:
Jeśli już masz przygotowane środowisko do pracy to zaczynamy od ustawienia URL w pliku ViewController.swift jaki ma się otworzyć w webview:
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "<https://google.pl>")!
webView.load(URLRequest(url: url))
webView.allowsBackForwardNavigationGestures = true
}
Następnie klikasz w ikonkę ▶️. Po chwili zobaczysz urządzenie z odpalaną aplikacją i swoją stroną.
Najtrudniejsze masz za sobą, teraz tylko z górki ;)
Kolejny krok to włączenie Safari, wybranie webview z zakładki Programowanie (jeśli jej nie masz to musisz aktywować narzędzia developerskie w Safari, ale zakładam że jako developer już to masz zrobione).
I… to tyle 🙂 Od teraz masz możliwość debugować webview w Safari. Oczywiście nie jest to idealnie, bo to nie docelowa aplikacja, ale większość problemów jakie są specyficzne dla iPhone możesz w ten sposób wykryć i rozwiązać.
Problemy z CORS
Czasem jeśli korzystasz z zewnętrznego API mogą się pojawić problemy z CORS. W normalnej przeglądarce rozwiązaniem jest instalacja wtyczki.
Ale jest na to lepszy sposób - proxy. Dla Angulara opis znajdziesz w dokumentacji i to wszystko 🙂
#bonus
Na koniec ciekawostka Angularowa - operator memo, który może dodać duży boost do wydajności, może chcesz sprawdzić? 😊