iOS经验3: WebView的应用

镔哥认为UIWebView 控件在很多项目都要用到,毕竟我们要跟服务器打交道,很多都要请求网络,但是有些已经做好的网页,或者功能我们无法直接做,所以

IOS系统提供了 UIWebView 控件,从而可以方便地集成与网页相关的多种应用,该控件内置浏览器控件,可以用来浏览网页、打开文档等等。

一、UIWebView 可以加载和显示某个URL的网页,也可以显示基于HTML的本地网页或部分网页

A. 加载 URL

  1. WebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 320, 400)];
  2. NSString *path = @"http://www.baidu.com";
  3. NSURL *url = [NSURL URLWithString:path];
  4. [WebView loadRequest:[NSURLRequest requestWithURL:url]];

b. 加载 HTML

NSBundle *bundle = [NSBundle mainBundle];

NSString *resPath = [bundle resourcePath];

NSString *filePath = [resPath stringByAppendingPathComponent:@"Home.html"];

[webView loadHTMLString:[NSString stringWithContentsOfFile:filePath]

baseURL:[NSURL fileURLWithPath:[bundle bundlePath]]];

二、使用网页加载指示,加载完成后再显示网页出来

首先要指定委托方法:

webView.delegate =self;
//记住哦,不然无法实现

 UIWebView主要有下面几个委托方法

      1、- (void)webViewDidStartLoad:(UIWebView *)webView;//开始加载的时候执行该方法。

2、- (void)webViewDidFinishLoad:(UIWebView *)webView;//加载完成的时候执行该方法。

3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;//加载出错的时候执行该方法。

     这样,可以利用 webViewDidStartLoad 和 webViewDidFinishLoad 方法实现本功能:

  1. - (void) webViewDidStartLoad:(UIWebView *)webView
  2. {
  3. //创建UIActivityIndicatorView背底半透明View
  4. UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
  5. [view setTag:108];
  6. [view setBackgroundColor:[UIColor blackColor]];
  7. [view setAlpha:0.5];
  8. [self.view addSubview:view];
  9. activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
  10. [activityIndicator setCenter:view.center];
  11. [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
  12. [view addSubview:activityIndicator];
  13. [activityIndicator startAnimating];
  14. }
  15. - (void) webViewDidFinishLoad:(UIWebView *)webView
  16. {
  17. [activityIndicator stopAnimating];
  18. UIView *view = (UIView*)[self.view viewWithTag:108];
  19. [view removeFromSuperview];
  20. NSLog(@"webViewDidFinishLoad");
  21. }

三、UIWebView还可以通过 stringByEvaluatingJavaScriptFromString 函数来执行 javascript代码,从而可以更加灵活地处理网页文件

  1. 获得UIWebView的标题

NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];

 2. 获取页面的URL

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];

 3. 修改页面元素的值

NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName(‘q‘)[0].value=‘朱祁林‘;"];

 4. 表单提交

NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]

四、综合运用以上方法,还可以实现部分网页的显示,基本思路如下:

1. 用 loadRequest 先获取网页,但先设置 UIWebView.hidden = YES;

2. 在 webViewDidFinishLoad 中,用

NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementByIdx_x_x(‘xxxx‘).innerHTML; "] 获取指定标签元素的HTML代码

3. 再使用 loadHTMLString 加载该HTML代码,即可

时间: 2024-10-09 16:05:32

iOS经验3: WebView的应用的相关文章

ios开发入门- WebView使用

转自:http://mahaile.blog.51cto.com/2891586/1021515/ 目标 : webview使用 在一些移动app中,有时程序会载入 外表的html 界面, android 有 webView ios 有吗, 答案是肯定的, 下面我们来看看 ios 下面的webView 是怎么使用的吧 启动Xcode 创建一个新的ios 项目 , 模板选择 Signle view application , 项目名称命名为 Iphone_sample_WebView class

寒哥教你学iOS - 经验漫谈

http://www.jianshu.com/p/cb54054d3add 寒哥教你学iOS - 经验漫谈 字数2848 阅读1896 评论19 喜欢43 顺便来个广告 iOS开发者 群173499350 给大家提供一个交流技术 也可以聊天打屁的平台 本篇文章主要讲解 4个问题 load妙用 aop面向切面编程 NSNumber Or Int @()适配64位 1 让appDelegate 减少负担 经过漫长时间的学习 你终于掌握了iOS大法 你找到了份iOS开发的工作 信誓旦旦的要开始你的co

iOS开发之WebView

做iOS的应用也有一段时间了,在之前的demo中一直没有机会用到WebView,今天就查缺补漏一下,使用一下WebView.最早接触WebView是在Android中接触的,iOS中的WebView的用法也是挺简单的.本篇博客没有什么高深的技术,只是对webView的应用.从字面意思可以看出WebView就是用来加载网页的视图,和手机上的浏览器类似. 1.之前用storyboard拖控件时只是看着WebView在哪里静静的躺着(如下图所示),一直没有用过,如果想使用的话也很简单,就是把web v

iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项目,需要一个webView,同时这个webView会需要引入一些项目中的资源: 一个本地的html文件,作为webView的模板 两张loading图片,在图片未加载的时候进行占位 jquery.js,scrollLoading.js 也是本地的,实现滚动加载图片功能 然后就开始了漫长的Google历程. 在w

调试iOS app的WebView

UIWebView算是在iOS中使用较多的一个控件,但Xcode并没有提供工具让我们调试WebView.那么如何调试WebView呢?Android用Chrome,iOS下当然就得用Safari啦. 首先,我们需要在Safari显示Develop菜单.打开Safari,点击Safari -> Peferences -> Advanced,勾选"Show Develop Menu in Menubar". 如果是在模拟器中调试的话: 1.在模拟器中打开应用,并点开需要调试We

IOS侧滑和webview

1 .ios navigationcontroller 滑动返回 滑动返回是navigationcontroller默认返回按钮自带的功能,如果返回按钮自定义该功能失效, 解决的办法有两个: ① self.navigationItem.backBarButtonItem =   [[UIBarButtonItemalloc]initWithCustomView:button];//这个方法用不了 只能用 self.navigationItem.backBarButtonItem = [ [UIB

给1~3年iOS经验朋友们的一些建议(附BAT面经)

引言 由于笔者是做 iOS 开发的,因此本文也仅对做 iOS 的同行们有针对性,其他方向仅供参考. 1,如果你: 1~3年左右工作经验,本科,非计算机相关科班出生,学校又比较一般. 实习企业不理想没有签,校招单位跟想象的有很大差距. 每天都为自己的前途感到焦虑,非常羡慕大厂同学的发展机会. 觉得自己是个有上进心,有热情,有执行力的人,相信自己能独当一面. 如果你跟上面的情况类似,想去大厂?那么现在就接着看下去吧. 光看这篇文章是没有用的,你要证明你符合最后一条要求,有执行力,最重要. 作为一个开

iOS 点击WebView中的链接,跳转指定控制器

-(BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { }

iOS开发-webView上的一些简单交互

1.实现webView上图片的等比缩放. //在webview加载完成时调用 [webView stringByEvaluatingJavaScriptFromString: @"var script = document.createElement('script');" "script.type = 'text/javascript';" "script.text = \"function ResizeImages() { " &q