黑马程序员------杂记(二)
2015-02-10 20:46
176 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
UIWebView控件执行js代码
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='who are you';"];
4. 表单提交
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]
四、综合运用以上方法,还可以实现部分网页的显示,基本思路如下:
1. 用 loadRequest 先获取网页,但先设置 UIWebView.hidden = YES;
2. 在 webViewDidFinishLoad 中,用
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementByIdx_xx_x_x('xxxx').innerHTML; "] 获取指定标签元素的HTML代码
3. 再使用 loadHTMLString 加载该HTML代码,即可
获取当前网络状态
因为Reachability类只支持获取以下三种类型
typedef enum : NSInteger {
NotReachable = 0,
ReachableViaWiFi,
ReachableViaWWAN,
} NetworkStatus;
因为移动网络只获取到ReachableViaWWAN,如果,我们想要具体获取到是2G,3G,4G的网络状态就必须重写networkStatusForFlags这个方法,代码如下:
UIWebView控件执行js代码
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='who are you';"];
4. 表单提交
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]
四、综合运用以上方法,还可以实现部分网页的显示,基本思路如下:
1. 用 loadRequest 先获取网页,但先设置 UIWebView.hidden = YES;
2. 在 webViewDidFinishLoad 中,用
NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementByIdx_xx_x_x('xxxx').innerHTML; "] 获取指定标签元素的HTML代码
3. 再使用 loadHTMLString 加载该HTML代码,即可
获取当前网络状态
因为Reachability类只支持获取以下三种类型
typedef enum : NSInteger {
NotReachable = 0,
ReachableViaWiFi,
ReachableViaWWAN,
} NetworkStatus;
因为移动网络只获取到ReachableViaWWAN,如果,我们想要具体获取到是2G,3G,4G的网络状态就必须重写networkStatusForFlags这个方法,代码如下:
typedef enum : NSInteger { NotReachable = 0, ReachableViaWiFi, ReachableViaWWAN, ReachableVia4G, ReachableVia3G, ReachableVia2G } NetworkStatus; if (flags & kSCNetworkReachabilityFlagsIsWWAN) { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init]; NSString *currentRadioAccessTechnology = info.currentRadioAccessTechnology; if (currentRadioAccessTechnology) { if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) { return ReachableVia4G; } else if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyEdge] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyGPRS]) { return ReachableVia2G; } else { return ReachableVia3G; } } } if ((flags & kSCNetworkReachabilityFlagsTransientConnection) == kSCNetworkReachabilityFlagsTransientConnection) { if((flags & kSCNetworkReachabilityFlagsConnectionRequired) == kSCNetworkReachabilityFlagsConnectionRequired) { return ReachableVia2G; } return ReachableVia3G; } return ReachableViaWWAN; }
相关文章推荐
- 黑马程序员------杂记
- 黑马程序员——杂记——天道酬勤
- 黑马程序员_论坛问题杂记
- 黑马程序员----NSDate 学习杂记
- 黑马程序员---OC中类与对象 语法杂记
- 黑马程序员------c 语言杂记
- 生活杂记
- 黑马程序员_JavaSE基础07 之 构造函数 this tatic 静态代码块
- 黑马程序员_JAVA基础,互换两个数的值的几种方法。
- 黑马程序员_面向对象
- 黑马程序员 java IO BufferedReader BufferdWriter 读文件 写文件
- 黑马程序员——java.lang.Process和java.lang.ProcessBuilder
- 黑马程序员——android开发中的eclipse快捷键
- 黑马程序员-C基础-C语言概述
- R语言入门---杂记(一)---R的常用函数
- Linux使用杂记2009-12-16
- 黑马程序员——装饰类设计模式简介
- 黑马程序员01--线程与进程的区别以及为什么使用多线程?
- 黑马程序员-Java基础-多线程间通讯
- [黑马程序员]命令行执行时碰到Exception in thread "main" java.lang.NoClassDefFoundError