UIWebView

1.加载网页
NSString *path = @"http://jinwan.c.jinerkan.com/v3/client/video";
NSURL *url = [[NSURL alloc] initWithString:path];
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
2.与Html交互
NSURL * url;
NSURLRequest * request;
NSString * stringPath;
NSString * stringHtml;
//后退
[_webView goBack];
//前进
[_webView goForward];
//刷新
[_webView reload];
//停止
[_webView stopLoading];
request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];
//加载HTLM文件
//找到本地html文件
stringPath = [[NSBundle mainBundle]pathForResource:@"Test" ofType:@"html"];
//得到html原码字符串形式
stringHtml = [NSString stringWithContentsOfFile:stringPath encoding:NSUTF8StringEncoding error:nil];
//加载html源码
[_webView loadHTMLString:stringHtml baseURL:nil];
//与JavaScript交互
两种方向
1.iOS客户端调用和html中的事件
2.html中的js事件触发iOS客户端中的方法
//参数:即为html中的js事件
[_webView stringByEvaluatingJavaScriptFromString:@"show()"];

pragma mark -- webViewDelegateMethod

  • 开始加载请求
  • @param webView 当前web
  • @param request 请求体
  • @param navigationType 导航栏样式
    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {
    //得到当前网页网址
    NSString * url = request.URL.absoluteString;
    //
    _textField.text = url;

pragma mark html中js事件为修改当前网页的网址(window.location.href="oc://alert")即会调用该代理的方法,因此该代理方法即为html与ios客户端的连接

//首先判断为那个客户端(通过oc标识判断)
//字符串分割(分割为客户端类型与所需调用的方法)
NSArray * array = [url componentsSeparatedByString:@"//"];
if ([[array firstObject]hasPrefix:@"oc"]) {
    //说明为iOS客户端所需调用的方法
    [self alert];
    //根据方法名调用方法
        //1.先将方法名存入选择器中
    SEL sel = NSSelectorFromString([array lastObject]);
    //调用方法
    //内存警告问题
    [self performSelector:sel];
}
return YES;

}

你可能感兴趣的:(UIWebView)