欢迎光临
我们一直在努力

js与oc的交互

建站超值云服务器,限时71元/月

js与oc的交互

项目介绍:

JS与OC的交互,修改、添加、删除h5页面内容

主要代码:
[Objective-C] 查看源文件 复制代码

#pragma UIWebViewDelegate方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    NSLog(@"开始响应请求时触发");
    return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView{
    NSLog(@"开始加载网页");
}
//      UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView{
     NSLog(@"网页加载完毕");
    /*
     <p class="myimg">
     <img src="http://p1.ifengimg.com/a/2016_24/be65927e27de090_size57_w530_h318.jpg" width=​"312" height=​"312" alt >
     </p>
 --------1.获取id为‘myimg’的p标签,然后删除-----------------
//     */
//    NSString *str1 = @"var p = document.getElementById('myimg');";
//    NSString *str2 = @"p.remove();";
//    [webView stringByEvaluatingJavaScriptFromString:str1];
//    [webView stringByEvaluatingJavaScriptFromString:str2];
    
//-------2.更改 修改<li class = "shouye">首页</li>列表标签的内容-----------------
    NSString *str3 = @"var zzz = document.getElementsByClassName('shouye')[0];""zzz.innerHTML = '你是猪吗??';";
    [webView stringByEvaluatingJavaScriptFromString:str3];
    
//-------3.插入 图片----------------------------------
    NSString *str4 = @"var img = document.createElement('player');"
    "img.src = 'http://yuntv.letv.com/player/live/blive.js';"
    "img.width = '320';"
    "img.height = '180';"
    "img = new CloudLivePlayer();"
    "img.init =({activityId:'A2016080300000in'});"
    "document.body.appendChild(img);";
    /*
     前面
     "var first=document.body.firstChild;"
     "document.body.insertBefore(img,first);"
     */
    [webView stringByEvaluatingJavaScriptFromString:str4];
    // 拼接一个脚本语言中的 自动定位代码
    /*
     <div id="player" style="width:100%;height:450px;">
     <script type="text/javascript" charset="utf-8" src="http://yuntv.letv.com/player/live/blive.js"></script>
     <script>
     var player = new CloudLivePlayer();
     player.init({activityId:"A2016080300000in"});
     </script>
     </div>
     
     <div id="player" style="width:100%;height:450px;">
     <script type="text/javascript" charset="utf-8" src="http://yuntv.letv.com/player/live/blive.js"></script>
     <script>
     var player = new CloudLivePlayer();
     player.init({activityId:"A2016080900000hj"});
     </script>
     </div>

     */
//-------4.js中给标签添加相印事件-------------------
    NSString *str5 = @"var baidu = document.getElementsByTagName('a')[0];"
//    NSString *str5 = @"var baidu = document.getElementById('dsd');"
    "baidu.innerHTML = '你是猪a ??';"
    "baidu.onclick = function(){alert('点我点我点我')};";
    [webView stringByEvaluatingJavaScriptFromString:str5];
    
//-------5js调用oc----------------------------
    //JSContext * context;
    //获取js的运行环境
    _context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    //html调用无参数OC
    _context[@"test1"] = ^(){
        [self menthod1];
    };
    //html调用OC(传参数过来)
    _context[@"test2"] = ^(){
        NSArray * args = [JSContext currentArguments];//传过来的参数
        //        for (id  obj in args) {
        //            NSLog(@"html传过来的参数%@",obj);
        //        }
        NSString * name = args[0];
        NSString * str = args[1];
        [self menthod2:name and:str];
    };

}



oc与js的爱恋.zip
(352.17 KB, 下载次数: 628)

2016-8-10 15:54 上传
点击文件名下载附件

简单使用

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » js与oc的交互
分享到: 更多 (0)