UIWebView的使用与总结

hh.jpeg

先前在项目中使用了UIWebView 在项目中一些比较复杂的UI布局、需后台灵活控制的界面、原网页,可以考虑UIWebView 在用它之前跟大家说下它的优缺点 优点:

  • 可跨平台 开发一次可以部署iOS、Android等平台。
  • 发布更新快 在服务器端发布,能够实时更新终端展示,便于快速升级以及紧急修复bug
  • 排版布局能力强 强大的HTML+CSS让人膜拜 缺点:
  • 性能 相对于原生的app来说,使用UIWebViewapp相对来说性能会低一点, 用户的体验度也会大打折扣
  • 数据通讯复杂UIWebViewApp之间进行数据通讯只能通过javascriptUIWebViewDelegate来进行,客户端想传参数给UIWebView修改网页或 者从网页中获取数据都比较复杂。具体的操作如下

更多经验请点击

UIWebView的常规使用方法: //加载网页或者本地文件 - (void)loadRequest:(NSURLRequest *)request;//直接加载html内容,如果html中的图片等资源在本地目录,注意将baseURL指向该目录 - (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;//功能与上面类似 - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL; 实现UIWebViewDelegate主要使用到的方法 -(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*) reuqest navigationType:(UIWebViewNavigationType)navigationType;//当网页视图被指示载入内容而得到通知。应当返回YES,这样会进行加载。通过导航类型参数可以得到请求发起的原因,可以是以下任意值: UIWebViewNavigationTypeLinkClicked //判断是否是点击事件 UIWebViewNavigationTypeFormSubmitted UIWebViewNavigationTypeBackForward UIWebViewNavigationTypeReload UIWebViewNavigationTypeFormResubmitted UIWebViewNavigationTypeOther 通过 NSURL *url = [request URL]; NSString *curUrl= [url absoluteString]; 可得到点击事件的URL -(void)webViewDidStartLoad:(UIWebView*)webView ;//当网页视图已经开始加载一个请求后,得到通知。 -(void)webViewDidFinishLoad:(UIWebView*)webView ;//当网页视图结束加载一个请求之后,得到通知。 -(void)webView:(UIWebView*)webView DidFailLoadWithError:(NSError*)error;//当在请求加载中发生错误时,得到通知。会提供一个NSSError对象,以标识所发生错误类型。 设置背景透明:webView.backgroundColor= [UIColor clearColor];webView.opaque=NO; 自动适配屏幕: webView.scalespageToFit = YES; 自动检测网页上的电话号码,点击可拨号 webView.detectsPhoneNumbers = YES; 与js交互

我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。
1、获取当前页面的url。
- (void)webViewDidFinishLoad:(UIWebView *)webView {NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];}
2、获取页面title:
- (void)webViewDidFinishLoad:(UIWebView *)webView {NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];}

推荐一款学习iOS开发的app_____|______| | 传送门 技术交流群:534926022(免费) 511040024(0.8/人付费) 原文在:http://www.allluckly.cn/ 版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动端周边技术扩展

移动端开发人员调试H5

1933
来自专栏养码场

趣读|程序员发现 Bug 时,简直戏精附体哈哈哈哈哈

OS:我操这个大撒比写出这么个烂代码,幸亏有哥这样神一样的存在才发现,哥真是救世主

311
来自专栏移动端周边技术扩展

关于优化IPA包大小问题

1、压缩,使用imageOpitm等软件进行图片压缩处理 2、大图不要放到Assets.xcassets中

501
来自专栏liukaili_666888999

iOS一些实用demo(会持续更新的)

1175
来自专栏每日一篇技术文章

VR+全景播放器+头控讲解-03

701
来自专栏一“技”之长

iOS系统菜单控制器UIMenuController使用简介

   在许多iOS应用中,当用户进行某文字或图片区域的长按操作时,都会弹出一个系统菜单控件,用户可以通过操作菜单控件上的按钮进行数据的复制、剪切、粘贴等操作。系...

873
来自专栏前端知识分享

第151天:网页中插入百度地图方法(不需要密钥)

 以上就是网页中插入百度地图的方法,做企业站,总是要插入百度地图,以后再也不用愁了。

1322
来自专栏移动端开发

iOS9.0 友盟分享详细过程

一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了。然后在这个方法里面设置Key -...

19010
来自专栏施炯的IoT开发专栏

Microsoft .NET Framework & Micro Framework ZigBee Library

    之前做了一些ZigBee在Windows Mobile上的尝试(可以参考文章ZigBee On Windows Mobile--1.背景和结构、ZigB...

1946
来自专栏腾讯Bugly的专栏

Android APK 瘦身 - JOOX Music项目实战

导语 JOOX Music是腾讯海外布局的一个音乐产品,2014年发布以来已经成为5个国家和地区排名第一的音乐App。东南亚是JOOX Music的主要发行地区...

3176

扫码关注云+社区