美文网首页iOS网络篇iOS点点滴滴就是ios用的
iOS-UIWebView的一些用法(js调oc方法)

iOS-UIWebView的一些用法(js调oc方法)

作者: Lonely__M | 来源:发表于2015-06-30 17:12 被阅读2479次
    • UIWebView加载远程url
        NSURL *url = [NSURL URLWithString:@"[http://www.baidu.com]"];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [self.webView loadRequest:request];
    
    • UIWebView加载本地html

    方法1

        //加载本地html
        NSString *basePath = [[NSBundle mainBundle] bundlePath];
        NSString *htmlPath = [basePath stringByAppendingPathComponent:@"test.html"];
        NSURL *url = [NSURL fileURLWithPath:htmlPath];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [self.webView loadRequest:request];
    

    方法2

        NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"];
        NSURL *url = [NSURL URLWithString:path];
        self.webView.scalesPageToFit = YES;
        NSString *htmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        [self.webView loadHTMLString:htmlString baseURL:url];
    
    • JS调用OC方法

    网上有开源框架,可以实现native 和 js直接互相调用 WebViewJavascriptBridge,如果只是需要简单的调用的话,完全可以利用UIWebView的代理方法代替- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType,代码如下:

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    {
        NSString *url = [[request URL] absoluteString];
    //    NSURL *url = [request URL];
        
        NSLog(@"%@",url);
        //代码中根据返回的URL或者scheme来判断处理不同逻辑
        if ([url isEqualToString:@"demo://"])
        {
            DetailViewController *detail = [[DetailViewController alloc] init];
            [self.navigationController pushViewController:detail animated:YES];
        }
        return YES;
    }
    

    html代码如下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
    <title>
    测试网页
    </title>
    
    <script type="text/javascript">
    function demo()
    {
    
    <!--    alert(1212);-->
        window.location.href="demo://";
    }
    </script>
    
    <style type="text/css">
    
    /*div{
    
        border-radius: 30px;
        background-color: yellow;
        position: relative;
    }*/
    button{
    
        font-size: 40px;
        background-color: red;
        padding-top: 10px;
        margin: 30px;
        position: relative;
        left: 29%;
    }
    
    </style>
    </head>
    
    <body>
    <div>
        </br></br></br></br></br></br></br>
    <button onclick = "demo()" >按钮事件</button>
    </div>
    
    </body>
    </html>
    

    成长的路上总是会遇到...

                                               2015.6.30

    相关文章

      网友评论

        本文标题:iOS-UIWebView的一些用法(js调oc方法)

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