Ich denke, es ist eine übliche Methode, shouldOverrideUrlLoading
zu verwenden, um das Laden von URLs in Android WebView zu erkennen. Bei Seiten wie SPA (Single Page Application), bei denen Submit nicht ausgeführt wird, erkennt diese Methode Ereignisse. Ich kann nicht
Verwenden Sie die doUpdateVisitedHistory des WebViewClient. doUpdateVisitedHistory ist eine Datenbank mit besuchten Links Die zu aktualisierende Methode.
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);
}
});
Greifen wir jetzt über WebView auf das SPA zu.
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
Ich konnte es sicher erkennen!
Recommended Posts