温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

UIWebView一些事儿~

发布时间:2020-07-28 03:02:09 来源:网络 阅读:265 作者:15010878114 栏目:开发技术

基础篇:

NSURL介绍 http://blog.csdn.net/ysy441088327/article/details/7416759

网页执行js代码

UIWebView一些事儿~

这个方法是让一切成为可能的关键,有了这个方法,才能对网页进行各种操作。我自己没有做过网页开发,所以对js不熟悉,只用了一些最常用的js,如果非常熟悉的话应该能做更多的事。

从网页获取URL:

UIWebView一些事儿~

从网页获取标题:

UIWebView一些事儿~

网页的滚动位置:
UIWebView一些事儿~


网站的图标Icon下载地址:

NSURL *url = [[NSURL alloc] initWithScheme:[web.request.URL scheme] host:[web.request.URL host] path:@"/favicon.ico"];

调整webView里的字体大小
http://www.cocoachina.com/bbs/read.php?tid=29707

判断网页URL是否合法(自己写的,未经过大量验证):
UIWebView一些事儿~

判断url是否相同:
NSURL的isEqual方法不太好用。最常见的问题是http://www.google.com和http://www.google.com/会判断不同,原因是苹果在这里没有遵循RFC2616规则做网址对比,所以最好自己判断下最后的斜杠


加载本地html的css和图片:
基本上就是加载本地文件的url就可以了,但如果是有外部的css和图片等资源,记得拖资源的时候记得要选择下面的create folder references for any added folder,不要选group,这样才能获得正确的路径关系。


提高篇:

这里直接引用一个国外博客,先放着,日后再翻译

自定义网页上的长按弹出菜单:
http://www.icab.de/blog/2010/07/11/customize-the-contextual-menu-of-uiwebview/

网页内关键字搜索与高亮:
http://www.icab.de/blog/2010/01/12/search-and-highlight-text-in-uiwebview/

自动根据网页打开新标签和新窗口:
http://www.icab.de/blog/2009/07/27/webkit-on-the-iphone-part-1/
http://www.icab.de/blog/2009/08/05/webkit-on-the-iphone-part-2/

只是上面2个还不够,有些网页的_blank不是写在链接上的,而是全局都是_blank,所以再补上下面的部分才行

UIWebView一些事儿~

清除UIWebVIew的内存占用和泄露:
http://www.codercowboy.com/code-uiwebview-memory-leak-prevention/

地址栏随着网页下拉移动,类似safari:

先拿到webView的scrollView,如果5.0以下就用靠循环去找了

UIWebView一些事儿~

然后把设置delegate,实现scrollViewDidScroll方法

UIWebView一些事儿~

停止和播放网页上的视频:

iPad上在网页里播放视频,即使关掉webView,依旧余音绕耳,调用下面的js可以停止播放

UIWebView一些事儿~

离线缓存网页:
http://re-reference.iteye.com/blog/1391408


网页加载进度不靠谱模拟:

一般情况下,加载一个网页会经历should->start->finish4个阶段。仔细看UIWebViewDelegate的文档,会 发现这里的delegate针对的是每个frame,也就是说如果网页由多个frame组成的话会有多个start。那么这里的finish也会被调用多 次,所以仅靠finish是无法判断网页是否加载完全的。

事实是,加载任意网页,srart和finish/fail是配对的,也就是说有多少个start就有多少个finish/fail。所以在start做 count++,finish/fail做count- -,为0的时候就是一个网页加载完毕了。 不过别高兴太早,加载完毕不代表网页渲染完毕,所以在最后还需要做一个延时操作,以确保网页确实显示出来了。

好了,现在网页开始和网页结束都找到了,但中间过程仍然是个谜,只能不靠谱模拟了。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI