美文网首页
OC和JS代码的互调

OC和JS代码的互调

作者: sky_kYU | 来源:发表于2016-07-06 20:41 被阅读37次

    Html决定网页的内容,css决定网页的样式,js决定网页的事件

    01 OC调用JS的代码 
        NSString *str = [self.webView stringByEvaluatingJavaScriptFromString:@"sum()"];
    
    02 JS怎么调用OC的说明 
        新的需求:点击按钮的时候拨打电话
        但是我在点击按钮的时候,用户是不知道的,我们怎么能够知道用户点击了网页上面的一个按钮,只能通过一个技巧,那就是自己搞一个特定的协议头比如说xmg://,当我拦截到你的网络请求的时候,只需要判断一下当前的协议头是不是这个就能判断你现在是否是JS调用。 OC里面有通过字符串生成SEL类型的方法,所以当拿到数据之后做下面的事情 
              1)截取方法的名称 
              2)将截取出来的字符串转换为SEL 
              3)利用performSelect方法来调用SEL
    
    03 涉及到的相关方法
           [@"abc" hasPrefix:@"A"] //判断字符串是否以一个固定的字符开头,这里为A 
          //截串操作 
          - (NSString *)substringFromIndex:(NSUInteger)from; 
          //切割字符串,返回一个数组 
          - (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator;
          //替换操作 
          - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
          //把string包装成SEL 
          SEL selector = NSSelectorFromString(sel);
    
    04 如何屏蔽警告 
        #pragma clang diagnostic push 
        #pragma clang diagnostic ignored "-Warc-performSelector-leaks" 
            //-Warc-performSelector-leaks为唯一的警告标识
            [self performSelector:selector withObject:nil]; 
        #pragma clang diagnostic pop

    相关文章

      网友评论

          本文标题:OC和JS代码的互调

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