onPageStarted方法只在第一次加载url时调用。之后,每当我点击一个视频,它正在打开,但onPageStarted方法没有被调用。其他网页网址正常。
我从onpagstarted回调和刷新功能的用户与swiperrefreshlayout获取url。当从顶部拖动时,它将再次加载到主页。
代码如下:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
mCurrentUrl = url;
}
}
和滑动刷新:
binding.newsSwipeLayout.setOnRefreshListener(new
SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeRefreshLayout.setRefreshing(false);
loadWebView();
}
});
Loadwebview代码:
private void loadWebView(){
try {
webView.loadUrl(mCurrentUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
这是因为Youtube不会在每次点击视频时加载一个新页面。它使用AJAX,它只更新页面的内容而不需要回发。
但是可以覆盖WebChromeClient
类的onReceivedTitle()
回调函数。它将在每次收到新的页面标题时触发,或者当您导航到新的视频时触发。
希望有帮助