UIWebView的基本使用

//
//  ViewController.m
//  UIWebView的基本使用


#import "ViewController.h"
#import "MBProgressHUD+MJ.h"

@interface ViewController ()<UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;

@end

@implementation ViewController

/*
 UIWebView:浏览器
    HTML\TXT\PDF\DOC\MP4\PPT
 */

/*
 iOS9 HTTP 不能正常使用的解决办法:
 1.在Info.plist中添加NSAppTransportSecurity类型Dictionary。
 2.在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
 */
- (void)viewDidLoad {
    [super viewDidLoad];
    
    //1.创建请求
    NSURL  *url = [NSURL URLWithString:@"http://www.baidu.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
    //2.设置
    self.webView.delegate = self;
    self.webView.scalesPageToFit = YES; //伸缩内容以适应屏幕
    
    //2.加载请求
    [self.webView loadRequest:request];
}

/**
 *  OC中执行JavaScript代码
 */
- (void)clearAd
{
    //执行JavaScript代码
    [self.webView stringByEvaluatingJavaScriptFromString:@"alert(1);"];
    
    //把网页HTML中的header和footer元素删掉
    [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('header')[0].remove();"];
     [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('footer')[0].remove();"];
    
    //获取当前网页的标题
    [self.webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}

/**
 *  打开系统相册
 */
- (void)openMyAlbum
{
    UIImagePickerController *ipc = [[UIImagePickerController alloc]init];
    ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentViewController:ipc animated:YES completion:nil];
}


#pragma mark - UIWebViewDelegate

/**
 *  当webView每次发一个请求都会调用这个方法
 */
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    //拦截HTML中的网络请求
    //如果地址有"ios://"表示要调用OC中的方法
    //以达到网页和OC交互
    NSString *url = request.URL.absoluteString;
    NSRange range = [url rangeOfString:@"ios://"];
    if(range.length != 0){
        NSString *method = [url substringFromIndex:range.location + range.length];
//        NSLog(@"%@",method); //openMyAlbum
        
        //将方法名转为SEL类型
        SEL selector = NSSelectorFromString(method);
        [self performSelector:selector withObject:nil];
    }
        
    return YES;
}

/**
 *  开始加载的时候调用
 */
- (void)webViewDidStartLoad:(UIWebView *)webView
{
    [MBProgressHUD showMessage:@"正在加载中..."];
}

/**
 *  加载完毕
 */
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [MBProgressHUD hideHUD];
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{}

@end
2.html中的js代码
<script type="text/javascript">
		function openAlbum()
		{
			//打开相册(执行OC中的代码)
			window.location.href="ios://openMyAlbum";
			//“openMyAlbum”和OC的方法同名
		}
	</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值