单纯使用 UIWebView 无法获得页面加载完成事件,主要有如下几个原因:

1、iOS 中的 UIWebView 是一个阉割版,很多接口与事件都没有暴漏(使用私有 API 可以)。

2、页面中有 iFrame 或者 ajax 请求。

解决问题的办法是通过 Javascript 向 UIWebView 通知页面加载完成的事件:

JS Fragment:

HasLoadedPage();

function HasLoadedPage() {

if(document) {

if(document.readyState === "loaded" || document.readyState === "complete") {

var tempFrame = document.createElement("iframe");

tempFrame.src = "pwInvoke://page_loaded";

document.body.appendChild(tempFrame);

document.body.removeChild(tempFrame);

}

else {

window.setTimeout(HasLoadedPage, 100);

}

}

}

在 UIWebView Delegate 的 shouldStartLoadWithRequest 中处理该事件。

上面的片段可以判断 iFrame,ajax 等异步请求,具体的标准参考 DOM 的相关规范。

转载于:https://www.cnblogs.com/Proteas/archive/2012/12/05/2802892.html

在 UIWebView 中如何准确获得页面加载完成的事件相关推荐

  1. 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

  2. c2010页面闪现_Vue.js中 v-if 和v-else-if页面加载出现闪现的问题及解决方法

    Vue.js中 v-if 和v-else-if页面加载出现闪现的问题及解决方法 发布于 2020-2-22| 复制链接 vue中v-if 和v-else-if在页面加载的时候,不满足条件的标签会加载然 ...

  3. html页面加载触发的事件,jquery页面加载触发onchange事件

    jquery页面加载触发onchange事件2017-08-31 14:57 在用到select的时候,我们经常会一起使用select的onchange事件. 如果是直接选择触发此事件,那倒是很简单. ...

  4. dom事件对象、解绑事件、事件委托、页面加载、滚动事件、页面尺寸事件

    1.e.type获取事件类型,例如click input focus <input type="text"> <script>let input=docum ...

  5. qiankun微前端中主应用路由页面加载微应用的某个路由页面

    必须保证微应用加载时主应用这个路由页面也加载了. vue + vue-router 技术栈的主应用: 主应用注册这个路由时给 path 加一个 *,注意:如果这个路由有其他子路由,需要另外注册一个路由 ...

  6. JS页面加载完成触发事件

    2019独角兽企业重金招聘Python工程师标准>>> JS  window.οnlοad=function(){ //do something } <script type= ...

  7. 【MFC】在CHtmlView中准确判断页面加载完成

    以前的方法繁琐,这里抄了别人的方法,做了简单修改.记录下. 首先要在CHtmlView的子类中,重载如下函数: virtual void DocumentComplete(LPDISPATCH pDi ...

  8. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  9. 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)

    在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记. 什么是页面加载管理类呢?(大佬可直接跳过翻看实现过程) 如果能有这个问题,那么很好,哈哈哈,你和我一样,刚开始都挺疑惑 ...

  10. android动态刷新主页,Android app 页面加载统计工具

    ​工具:appium+mincap+opencv appium 用于自动化操作,minicap 用于截图,opencv 用于图像识别 页面统计原理 1.app 启动:命令执行的时候开始统计到图片数据匹 ...

最新文章

  1. MindSpore技术理解(下)
  2. c语言笔试题(带答案)
  3. java中final关键字的用法
  4. Android Binder ProcessState IPCThreadState相关介绍
  5. Update msi using vbscript
  6. 王立众:学习多媒体开发从编解码开始
  7. 程序员懂点经济学-股票投资
  8. 测试眉形的有哪个软件_这五款自动化软件测试工具,你最喜欢用哪个?
  9. 信息学奥赛C++语言:奖励钢笔
  10. 如何在Linux中查看所有正在运行的进程 1
  11. win10下Redis安装、启动教程
  12. 做一款仿映客的直播App
  13. 【TWVRP】基于matlab节约算法求解带时间窗的电动车路径规划问题【含Matlab源码 1169期】
  14. 数据结构与算法c语言版胡明课后答案,算法设计与分析(第2版) 王红梅 胡明 习题答案...
  15. C#试玩程序设计试题——定向越野(迷宫)
  16. 招募3DGIS技术合伙人
  17. 2021年教师资格证 科目三 高中数学 课程标准 简答题
  18. 企业生产管理集成的核心工具—MES管理系统
  19. 1230k倍区间,关于cnt[0]赋值为1的解释
  20. 强制删除windows文件的终极解决方法

热门文章

  1. MapStruct 入门使用
  2. Navicat怎样导入Excel表格数据
  3. WinForm窗体生命周期
  4. 利用if...else if....else循环语句编程
  5. 08. 旋转数组的最小数字(C++版本)
  6. MySQL 随机获得一条数据的方法
  7. 微服务学习之Consul服务注册与发现【Hoxton.SR1版】
  8. Windows 无法访问\\196.168.206.xx,你的计算机配置似乎是正确的,但该设备无法访问的问题解决
  9. python适用于哪些芯片_这些鲜为人知的Python功能,你值得拥有!
  10. nodejs 图片处理模块 rotate_会照片处理的不只是ps,还有python!