Android WebView с изменениями маршрута приложения AngularJS не обнаружен в shouldOverrideUrlLoading - PullRequest
0 голосов
/ 18 мая 2018

Я работал над гибридным приложением для Android.В настоящее время WebView в нашем приложении указывает на приложение AngularJS 1.5.7.Когда пользователь нажимает кнопку внутри приложения, которая изменяет маршрут, я ожидал, что функция shouldOverrideUrlLoading будет вызываться внутри моего WebViewClient.Однако, это не так.Похоже, что mustOverrideUrlLoading не попадает на изменения маршрута Angualar.

В этом случае я пробежал следующие кроличьи норы:

  1. onPageFinished - переопределение этой функции вWebViewClient работает, однако он не вызывается до тех пор, пока не будет достигнут новый маршрут.Что добавляет время загрузки приложения и создает нестабильный опыт.`@Override public void onPageFinished (представление WebView, URL-адрес строки) {

            if (url.endsWith("/#/")) {
                signOut();
            } else if (url.endsWith("/login")) {
                // TODO: show some sort of failure message?
                Log.i("Login Route", "The webview just attempted to go to the login route.");
                signOut();
            } else if (url.endsWith("/security")) {
                Intent intent = new Intent(getApplicationContext(), SecurityActivity.class);
                startActivity(intent);
            }
        }`
    
  2. shouldInterceptRequest - переопределение этой функции позволяет отслеживать запросы.Однако к тому времени, когда запросы поступают из приложения AngularJS, веб-представление снова показывает новый маршрут, предоставляя прерывистый пользовательский опыт.

  3. onLoadResource - то же самое

  4. JavaScriptInterface - В настоящее время я настроил интерфейс JavaScript для отслеживания изменений window.location.Похоже, что это ловит изменения маршрута быстрее, чем любой из вышеперечисленных вариантов, однако, все еще есть проблеск быстрого мерцания веб-страницы, на которую я не хочу идти.Вы можете найти, как сделать соединение Javascript в этом сообщении

Любые предложения будут с благодарностью!Спасибо.

...