webView

作者: 张家杰仔 | 来源:发表于2017-04-06 10:41 被阅读20次

    //设置背景透明
    [_webview setOpaque:NO];

    //初始化
     _webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, _height * 0.15, _width, _height * 0.8)];
    
     _webView.dataDetectorTypes = UIDataDetectorTypeAll;
    _webView.backgroundColor = [UIColor clearColor];
    [_webView setOpaque:NO];
    
    //加载本地的HTML文件
     NSURL *htmlURL = [[NSBundle mainBundle] URLForResource:@"index.html" withExtension:nil];
    //    NSURL *htmlURL = [NSURL URLWithString:@"http://www.baidu.com"];
        NSURLRequest *request = [NSURLRequest requestWithURL:htmlURL];
        
        // 如果不想要webView 的回弹效果
        self.webView.scrollView.bounces = NO;
        // UIWebView 滚动的比较慢,这里设置为正常速度
        self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
        [self.webView loadRequest:request];
        [self.view addSubview:self.webView];
    

    注入JS

    //webView加载完成
    - (void)webViewDidFinishLoad:(UIWebView *)webView{
       
    //js代码
        NSString *jsString = @"(function(){"
        "var objs = document.getElementsByTagName('img');"
        "for(var i=0,j=0;i<objs.length;i++)"
        "{"
           " var levelcode = objs[i].getAttribute('levelcode');"
           " if(levelcode=='-1'){"
                "continue;"
            "}"
            "objs[i].setAttribute('index',j);"
            "j++;"
            "objs[i].onclick=function()"
            "{"
                "var index = this.getAttribute('index');"
                "openImage(index);"
            "}"
        "}"
    "})()";
    
      __weak typeof(self) weakSelf = self;
        [webView stringByEvaluatingJavaScriptFromString:jsString];
        //其中 openImage 是JS的函数名,得到的 arg数组 里面为JS的 passValue 函数的参数,即 JS要传给OC的参数。
        JSContext *context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    
        context[@"openImage"] = ^{
            NSString *string;
            NSArray *arg = [JSContext currentArguments];
            for (id obj in arg) {
                string = [NSString stringWithFormat:@"%@",obj];
            }
            dispatch_async(dispatch_get_main_queue(), ^{
                NewDetailScrollViewController *vc = [[NewDetailScrollViewController alloc]init];
                [vc loadUIWithdataDict:weakSelf.dict indexImage:[string integerValue] isSearch:weakSelf.isSearch];
                [weakSelf.navigationController pushViewController:vc animated:YES];
    
            });
        };
    }
    
    

    相关文章

      网友评论

          本文标题:webView

          本文链接:https://www.haomeiwen.com/subject/ccutattx.html