iOS 网页加载时间监控方案实现

最近因为要做App的性能监控,网页加载时间是性能的一个指标,所以在网上查阅了一些资料,实现了无侵入网页加载时间的监控,不仅可以监控网页的加载时间,网页内部的链接也可以监控到

项目地址:无侵入实现网页加载时间监控

实现方案:

1.利用OC的runtime特性,Hook UIWebView的setDelegate方法,转发到自己定义的方法,代码如下

iOS 网页加载时间监控方案实现_第1张图片

2.把代理的回调方法转发到自己定义方法,再回调代理方法,代码如下

iOS 网页加载时间监控方案实现_第2张图片

3.在自定义的方法中处理网页加载时间的业务逻辑,代码如下

iOS 网页加载时间监控方案实现_第3张图片

4.在开启性能监控的地方接收发送的通知,进行网页时间的统计,代码如下

iOS 网页加载时间监控方案实现_第4张图片

大体实现方案就如上图代码。

需要注意的地方:1、因为是通过转发代理方法的方式实现的,所以代理方法一定要实现,否则监控不到

                        2、目前只列出了UIWebView的实现,WKWebView实现方式跟UIWebView一致。

大家有什么好的方案,欢迎讨论

你可能感兴趣的:(iOS,iOS,WebView,监控,Hook)