[JAVA] Que faire si le chargement de l'URL SPA ne peut pas être détecté par WebView shouldOverrideUrlLoading

introduction

Je pense que c'est un moyen courant d'utiliser shouldOverrideUrlLoading pour détecter le chargement d'URL dans Android WebView, mais pour des pages comme SPA (application à page unique) où la soumission ne s'exécute pas, cette méthode détecte les événements. Je ne peux pas.

manière

Utilisez doUpdateVisitedHistory de WebViewClient. doUpdateVisitedHistory est une base de données de liens visités La méthode à mettre à jour.

mWebView.setWebViewClient( new WebViewClient(){
            @TargetApi(Build.VERSION_CODES.LOLLIPOP)
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                Log.d(TAG, "shouldOverrideUrlLoading LOLLIPOP url = " + request.getUrl().toString());
                return false;
            }

            @SuppressWarnings("deprecation")
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.d(TAG, "shouldOverrideUrlLoading url = " + url);
                return false;
            }

            @Override
            public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
                Log.d(TAG, "doUpdateVisitedHistory url = " + url);
            }
        });

Maintenant, accédons au SPA à partir de WebView.

06-29 10:10:50.756 13453-13453/jp.sample D/WebViewFragment: doUpdateVisitedHistory url = https://xxxx/profile/home
06-29 10:34:41.636 13453-13453/jp.sample D/WebViewFragment: doUpdateVisitedHistory url = https://xxxx/connect
06-29 10:34:41.658 13453-13453/jp.sample D/WebViewFragment: doUpdateVisitedHistory url = https://xxxx/logout
06-29 10:34:41.671 13453-13453/jp.sample D/WebViewFragment: doUpdateVisitedHistory url = https://xxxx/connect
06-29 10:34:44.131 13453-13453/jp.sample D/WebViewFragment: doUpdateVisitedHistory url = https://xxxx/signin
06-29 10:34:54.526 13453-13453/jp.sample D/WebViewFragment: doUpdateVisitedHistory url = https://xxxx/auth/callback?token=xxxx

J'ai pu le détecter en toute sécurité!

Recommended Posts

Que faire si le chargement de l'URL SPA ne peut pas être détecté par WebView shouldOverrideUrlLoading
Que faire si la commande adb ne peut pas être exécutée
Que faire si JavaMail ne peut pas être utilisé avec OpenJDK 11 ou version ultérieure
Que faire si le serveur rails ne peut pas être arrêté
Que faire si la construction échoue avec l'erreur «Le module compilé avec Swift x.x.x ne peut pas être importé par le compilateur Swift x.x.x»
Que faire lorsque CentOS ne peut pas être démarré avec VirtualBox sur Catalina
Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)
Que faire si vous n'aimez pas le code généré par swagger-codegen-cli
Que faire si vous ne pouvez pas activer la boîte de sélection créée par bootstrap-select
[Ubuntu] Que faire lorsque MongoDB ne peut pas être démarré en raison d'une erreur SocketException
Que faire si le serveur Tomcat meurt
Que faire si vous transmettez des informations incorrectes
Que faire si l'archétype mvn: générer échoue
[React.useRef] Que faire lorsque le dernier état ne peut pas être référencé dans l'écouteur d'événements
Que faire si vous ne pouvez pas exécuter avec la commande "nom du package Java / nom de la classe"
Que faire si l'installation du gem de débogage échoue
Que faire si le serveur Rails ne peut pas démarrer
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Que faire si TextToSpeech ne fonctionne pas sur Android 11
Que faire si vous créez accidentellement un modèle
Que faire si une erreur ActionController :: UnknownFormat se produit
[Rails] Que faire lorsque les rails db: migrate ne peuvent pas être effectués car aucune table n'est référencée par la clé externe
[Java] [Spring] Que faire si vous ne pouvez pas utiliser Autowire avec une discordance de type après avoir annoté Spring Security
Que faire si le référentiel Git ne peut pas être affiché dans Azure Team Explorer pour Eclipse
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire lorsque vous ne pouvez pas appliquer d'opérateurs d'expression à la liaison de méthode
Que faire si mysql2 obtient une erreur d'installation de bundle
Que faire si la commande rails devient inutilisable
Que faire à propos de l'erreur "Impossible de lire ou n'est pas un fichier ZIP valide"