在shouldOverrideUrlLoading中未检测到AngularJS应用程序路由更改的Android WebView
我一直在开发一款混合android应用程序。目前,我们应用程序中的WebView指向AngularJS 1.5.7应用程序。当用户点击应用程序中更改路由的按钮时,我希望在WebViewClient中调用shouldOverrideUrlLoading函数。然而,情况并非如此。看来在安圭拉路线的改变上,应该覆盖的路线并没有受到影响 在这种情况下,我进入了以下兔子洞:在shouldOverrideUrlLoading中未检测到AngularJS应用程序路由更改的Android WebView,android,angularjs,hybrid-mobile-app,webviewclient,Android,Angularjs,Hybrid Mobile App,Webviewclient,我一直在开发一款混合android应用程序。目前,我们应用程序中的WebView指向AngularJS 1.5.7应用程序。当用户点击应用程序中更改路由的按钮时,我希望在WebViewClient中调用shouldOverrideUrlLoading函数。然而,情况并非如此。看来在安圭拉路线的改变上,应该覆盖的路线并没有受到影响 在这种情况下,我进入了以下兔子洞: onPageFinished-在WebViewClient中重写此函数是可行的,但是,直到新路由被命中后才会调用它。这增加了应用程序
如果您有任何建议,我们将不胜感激!谢谢。您可以使用
WebViewClient
中的doUpdateVisitedHistory(视图:WebView?、url:String?、isReload:Boolean)
,但这与您在第4点中提到的问题相同。不过,您的JS方面不会有任何更改。如何解决这个问题?
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);
}
}`