iOS WebView你需要的问题答案
一、UIWebView 可以加载和显示某个URL的网页,也可以显示基于HTML的本地网页或部分网页:
a. 加载 URL
- WebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 44, 320, 400)];
- NSString *path = @"http://www.baidu.com";
- NSURL *url = [NSURL URLWithString:path];
- [WebView loadRequest:[NSURLRequest requestWithURL:url]];
b. 加载 HTML
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 方法实现本功能:
- - (void) webViewDidStartLoad:(UIWebView *)webView
- {
- //创建UIActivityIndicatorView背底半透明View
- UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
- [view setTag:108];
- [view setBackgroundColor:[UIColor blackColor]];
- [view setAlpha:0.5];
- [self.view addSubview:view];
- activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)];
- [activityIndicator setCenter:view.center];
- [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
- [view addSubview:activityIndicator];
- [activityIndicator startAnimating];
- }
- - (void) webViewDidFinishLoad:(UIWebView *)webView
- {
- [activityIndicator stopAnimating];
- UIView *view = (UIView*)[self.view viewWithTag:108];
- [view removeFromSuperview];
- NSLog(@"webViewDidFinishLoad");
- }
三、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.
表单提交
*js_result2 = [webView
stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();
"]
四、综合运用以上方法,还可以实现部分网页的显示,基本思路如下:
1.
用 loadRequest 先获取网页,但先设置 UIWebView.hidden = YES;
2.
在 webViewDidFinishLoad 中,用
*js_result2 = [webView
stringByEvaluatingJavaScriptFromString:@"document.getElementByIdx_x_x_xx_x_x('xxxx').innerHTML;
"] 获取指定标签元素的HTML代码
再使用 loadHTMLString 加载该HTML代码,即可
iOS WebView你需要的问题答案的更多相关文章
- iOS Webview 实现修改javascript confirm 和 alert
贴代码: @interface UIWebView (JavaScriptAlert) -(void) webView:(UIWebView *)sender runJavaScriptAlertPa ...
- ios webView 默认有缓存
ios webview清除缓存. ios默认webview是有缓存的,所以不改变URL的话,刷新不了网页数据,或者像我这样写 NSMutableURLRequest *request = [NSMut ...
- iOS WebView 加载本地资源(图片,文件等)
https://www.cnblogs.com/dhui69/p/5596917.html iOS WebView 加载本地资源(图片,文件等) NSString *path = [[NSBundle ...
- iOS webview加载时序和缓存问题总结
iOS webView的加载时序 UIWebView加载顺序: - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSU ...
- iOS WebView All In One
iOS WebView All In One WKWebView / UIWebView Swift Playground //: A UIKit based Playground for prese ...
- iOS webView 远程html加载本地资源
昨天,一个朋友让我帮他在IOS上弄这样一件事情: webView 调用远程URL,并且让远程的web 通过自定义标签能实现内嵌本地的图片.js 或音频等. 比如:在服务器端 的html文件中 这样写到 ...
- iOS webView与js交互在文本空格上输入文字
项目要求:webview加载html网址,内容为填空题型文本,需要在横线上添加答案,并点击提交按钮后再将答案进行回显 正常加载的效果图片: 这个是用js交互后的效果图: 点击空格,输入想输入的答案,如 ...
- iOS webview加载html自定义选项框选词
项目要求:webview加载html网址,内容为英文文本,需要获取文本上的单词 这个是最终效果图: 思路是先实现自定义的选项框(不带系统选项)再获取到滑选的单词: 实现的步骤: 首先是替换掉系统长按出 ...
- ios webview 加载含有中文的URL网页显示白屏
1. ios中的webview加载的URL不可以含有中文,解决办法说将中文字符转码, 如下: - (NSString *)URLEncodeString { NSCharacterSet *set = ...
随机推荐
- mvc4中的过滤器
过滤器(Filter)把附加逻辑注入到MVC框架的请求处理.实现了交叉关注. 交叉关注:用于整个应用程序,又不适合放在某个局部位置的功能. 过滤器是.NET的注解属性(Attribute),它们对请求 ...
- 《深入理解Java虚拟机》学习笔记之内存回收
垃圾收集(Garbage Collection,GC)并不是Java语言的半生产物,事实上GC历史远比Java久远,真正使用内存动态分配和垃圾收集技术的语言是诞生于1960年的Lisp语言.经过半个世 ...
- ASP从HTML标签中提取中文
Function delHtml(strHtml) '做了一个函数名叫delhtml Dim objRegExp, strOutput Set objRegExp = New Regexp ' 建立正 ...
- 关于利用input的file属性在页面添加图片的问题
在页面添加图片涉及到兼容的问题怎么解决兼容问题呢?请看下面分析: 在IE浏览器上面我们能直接通过获取其input的value值来获取其图片的路径. 在火狐和谷歌需要用createObjectURL(( ...
- Tp框架之模型层
数据模型层是专门针对数据库来操作的 我们在home模块用一下数据模型层 先把配置修改好 我们先来打开这个文件 然后再打开think里面的主配置,把那里面关于数据库的部分,复制到home下的配置文件,然 ...
- 注册登录系统项目思路 -- javaweb
功能: > 注册 > 登录 --------------------------------- JSP: * login.jsp --> 登录表单 * re ...
- 配置adb环境变量
作为Android开发人员,会经常使用adb命令来进行push.pull.install.看数据库等.记录一下adb配置流程,以备后用. 在没有配置adb之前,我们打开Windows命令处理程序(cm ...
- 用js控制css属性
在用js控制css属性时,行内css属性可以任意控制,但若是在<style></style>中写的css属性,均不能用alert读取,但是赋值却有几种现象, 第一种:无法读取, ...
- 输入输出流类iostream常用函数解析
原创作品,转载请注明出处:http://www.cnblogs.com/shrimp-can/p/5657192.html 一.成员类型 1. ios::fmtflags: 格式标志,常用来设置输出的 ...
- Docker remote API简单配置使用
1.启动docker remote API的方式如下: docker -d -H uninx:///var/run/docker.sock -H tcp://0.0.0.0:5678 2.但是为了伴随 ...