UIWebView

1、UIWebView加载网页:

接口:

- (void)loadRequest:(NSURLRequest *)request;
- (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;

示例:

NSString *url = @"www.baidu.com";
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setTimeoutInterval:30];
self.webView = [[UIWebView alloc] init];
self.webView.delegate = self;
[self.webView loadRequest:request];

关闭webView前需要将delegate置为nil,并停止加载网页资源以防crash:

 _webView.delegate = nil;
 [_webView stopLoading];

2、safari调试UIWebView网页:

mac safari-》Preferences(设置)-》advanced(高级)-》勾选开发模式

Snip20170212_1.png

真机(模拟器)-》设置-》safari-》高级-》开启Web检查器和JavaScript

IMG_0588.PNG

之后真机或者模拟器webView可以用safari进行调试:

Snip20170212_4.png

3、Objective-C调用UIWebView js方法:

接口:

- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;

在webiview页面加载完成之后调用stringByEvaluatingJavaScriptFromString:方法运行JS
示例:

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('kw').value = 'UIWebview';document.getElementById('su').click();"];

注意:
stringByEvaluatingJavaScriptFromString:方法只有在webView网页加载结束后调用才会真正执行js代码。
如果判断webView页面是否加载完成,需要满足两个条件:

  • webView delegate回调webViewDidFinishLoad:方法;
  • webViewDidFinishLoad:方法回调后webView网页资源加载完成,用webView.isLoading来判断(可用其他方法)。
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    //网页为www.baidu.com
    if ([self isTargetUrl:webView.request.URL.absoluteString] && !webView.isLoading) {
        NSString *js = @"document.getElementById('kw').value = 'UIWebview';document.getElementById('su').click();";
        [webView stringByEvaluatingJavaScriptFromString:js];
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、简介 近两年随着HTML5的迅速发展与日趋成熟,越来越多的移动开发者选择使用HTML5来进行混合开发,不仅节约...
    RainyGY阅读 5,896评论 1 12
  • 一、简介 近两年随着HTML5的迅速发展与日趋成熟,越来越多的移动开发者选择使用HTML5来进行混合开发,不...
    宝宝teacher阅读 6,906评论 3 15
  • http://www.cnblogs.com/mddblog/p/5281748.html 一、整体介绍 UIWe...
    F麦子阅读 5,002评论 0 2
  • IOS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、...
    学无止境666阅读 45,950评论 5 53
  • OS之UIWebView的使用 刚接触IOS开发1年多,现在对于 混合式 移动端开发越来越流行,因为开发成本上、速...
    知之未道阅读 5,557评论 0 4