最近开发ipad项目,用到webview控件,网上收集整理一下先。
前两天用了UIScrollView,感觉这个控件大有用处。现在又觉得webview益处多多,呵呵,用都的都说好,得便宜卖乖,
不过具体还要看项目的针对性了,各个控件展示各有用武之地。有时是为了灵活,有时是为了维护。
举个实际碰到的例子:
商品展示详细页面,需要做相关商品的推荐功能,在各商品上有相应操作功能,但推荐数量不定,
原本使用webview显示详细,scrollview展现推荐,页面布局几乎就无法再变。
优点:
1.基于IB的设计事件处理很方便
2.动画展示效果较好
缺点:
1.即使该商品没有相关推荐,也得保留该区域,虽然可以在完全没有推荐的时候隐藏该区域,让详细信息填充满到该
区域,但碰到一两个推荐的时候就比较尴尬了。<用系统自动填充满页面也是一种方法>
2.就是上面提到的布局不太容易再调整,除非重新在XCode下设计。但这样又存在设计丢失,即原来的工作量白做,这还不算最坏的,
改玩布局后用一段时间后又想改回来,这就Over了,虽然有版本控制工具[还没接触过xcode的版本控制],但其中只技术人员能干的活,
你我都知。
当然使用webview也会有一些优缺点
缺点:
1.用webview加载网页对网络的要求提高---->解决:HTML同步到本地,离线也可浏览
2.本地html文件延伸出的本地文件[如图片文件]引用的维护
3.用webview交互掌握比较不好处理一点[这其实就是我做这个摘记的最大原因]
4.再一点就是可能牺牲原有的本地程序的动画效果--->可能对用户的第一吸引是静态美感,而后才是动态美感,这样理解聊以自慰。
优点:
1.布局合理调整简单/还可以有多种布局[就像换肤一样换布局],
一个布局一个本地化包,换肤是换了个马甲,换布局可是换了件内衣,虽然本质上并没有脱离马甲。 不过其中风险自个端详。
不用的理由千个万个,或许有时候只需一个理由,你就用他了。哈哈,痴人说话end。
---------------------------------------------------------------------------------------------------------------------------------------
API
异步加载请求 loadRequest:
可以通过属性判断是否正在加载中 loading
UIWebViewDelegate Protocol Reference
是否加载[用户操作]请求– webView:shouldStartLoadWithRequest:navigationType:
开始加载– webViewDidStartLoad:
完成加载– webViewDidFinishLoad:
请求URL超时失败是委托事件– webView:didFailLoadWithError:
//参考文章
1.动态修改HTML内容[
UIWebView: Dynamically Modify HTML documents]
2.交互调用事件[7 tips for using UIWebView]
4.WebKit DOM Programming Topics