Tak więc teraz w mojej aplikacji adres URL, do którego uzyskuję dostęp, ma przekierowanie, a kiedy to się stanie, WebView otworzy nową przeglądarkę, zamiast pozostać w mojej aplikacji. Czy istnieje sposób, w jaki mogę zmienić ustawienia, aby widok przekierował do adresu URL jak zwykle, ale pozostanie w mojej aplikacji zamiast otwierania nowej przeglądarki?
Edytować:
Chcę adresu URL przekierowania, po prostu nie wiem, jak go utworzyć, więc jedynym sposobem na uzyskanie tego adresu URL jest użycie adresu, który spowoduje przekierowanie do tego, który chcę.
Na przykład: Kiedy wejdziesz tutaj: http://www.amazon.com/gp/aw/s/ref=is_box_/k=9780735622777 zwróć uwagę, jak przekieruje adres URL do rzeczywistego produktu. W mojej aplikacji, jeśli otworzę ją w nowej przeglądarce, zrobi to dobrze, jednak jeśli zatrzymam ją w mojej aplikacji z WebView, pojawi się tak, jakby szukała k = 9780735622777, na przykład: http://www.amazon.com/gp/aw/s/ref=is_s_?k=k%3D9780735622777&x=0&y=0 . LUB, otworzy widok w przeglądarce i pokaże, co jest odpowiednie. Jednak chcę zachować wszystko w mojej aplikacji.
źródło
shouldOverrideUrlLoading
metodę, jest następnym przekierowaniem? I chcę na to pozwolić?Zgodnie z oficjalną dokumentacją , kliknięcie dowolnego łącza w WebView uruchamia aplikację obsługującą adresy URL, która domyślnie jest przeglądarką. Musisz zmienić domyślne zachowanie w ten sposób
źródło
Wystarczy dodać domyślny niestandardowy
WebViewClient
. To sprawia, że WebView sam obsługuje wszystkie załadowane adresy URL.źródło
Przed załadowaniem adresu URL będziesz musiał ustawić niestandardową metodę przesłaniającą metodę shouldOverrideUrlLoading WebviewClient dla swojego widoku internetowego.
źródło
Proszę użyć poniższego kodu kotlin
Aby uzyskać więcej informacji, kliknij tutaj
źródło
Utwórz klasę, która implementuje webviewclient i dodaj następujący kod, który umożliwia zastąpienie ciągu adresu URL, jak pokazano poniżej. Możesz zobaczyć te [przykład] [1]
W swoim konstruktorze utwórz obiekt Webview, jak pokazano poniżej.
Następnie dodaj następujący kod, aby wykonać ładowanie adresów URL w aplikacji
źródło
źródło