当我导航到另一个视频时,无法在android webview中获得youtube URL.未调用onPageStarte



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()回调函数。它将在每次收到新的页面标题时触发,或者当您导航到新的视频时触发。

希望有帮助

最新更新