美文网首页
OC和JS的交互那点事

OC和JS的交互那点事

作者: 有思想的火柴 | 来源:发表于2016-07-20 11:20 被阅读54次

    1、OC调用JS代码

    在代理方法webViewDidFinishLoad:方法中调用JS代码

    NSMutableString *js = [NSMutableString string];
    [js appendString:@"var footer = document.getElementsByTagName('footer')[0];"];
    [js appendString:@"footer.parentNode.removeChild(footer);"];
    [webView stringByEvaluatingJavaScriptFromString:js];
    

    2、JS调用OC代码

    在代理方法
    -(BOOL)webView: shouldStartLoadWithRequest: navigationType: 中 可拦截从html页面的请求

    • 首先在html中自定义方法,例如:
      function call(){
      window.location.href = 'YH://call'
      }
    • 在上述webView代理方法中将此链接拦截
      NSString *url = request.URL.absoluteString;
      NSRange range = [url rangeOfString:@"YH://"];
      NSUInteger loc = range.location;
      if (loc != NSNotFound){
      NSString *method = [url subStringFromIndex:loc + range.length];//取得方法名
      SEL sel = NSSelectFromString(method);//转成SEL
      [self performSelector:sel withObject:nil];
      }

    这时候就会调用系统的call这个方法

    - (void)call {
    //将要实现的OC方法写在这里
    }
    

    3、WebViewJavascriptBridge

    关于OC和JS的交互有个第三方库,貌似很好用给出个链接有兴趣的可以点击去<a href = 'http://www.jianshu.com/p/feec40aff59a'>这里</a>看看

    相关文章

      网友评论

          本文标题:OC和JS的交互那点事

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