毫无疑问,这对于网页来说是一个更普遍的问题,但它很容易在 Google 内容中得到证明。
在 Google 主页上输入某些搜索条件时,结果不会触发webViewDidFinishLoad方法。当彩色 Google 徽标被链接到功能页面的一些艺术作品替换时,也会出现同样的问题。
我怀疑由于某些 javascript 或 ajax 代码而导致页面没有完全加载,那么有没有办法检测到这一点?
这是因为 Google 正在使用 AJAX 来执行此操作,当有效地将新资源加载到 webview 中时会调用 webViewDidFinishLoad 委托方法 - 相当于浏览器中的页面加载,因为 Google 正在 AJAX 处理这些东西,它不会导致该方法被触发。
没有任何方法可以检测页面的某些部分何时加载(javascript、样式表或 ajax 响应)。
您可以做的一件事是在 web 视图上执行一行 javascript,告诉您页面的高度,通过等待页面的高度发生变化,您可以知道何时发生结果,您将不得不设计其他一些 - 修改搜索查询时当然会进行更智能的检查,但我的想法适用于最初的谷歌徽标屏幕到第一个结果页面。
每隔几秒执行一次 JS 就足够了。
希望有帮助