zoukankan      html  css  js  c++  java
  • OC 和 js 交互

    首先导入 

    #import <JavaScriptCore/JavaScriptCore.h>

     

    声明 对象

    @property (nonatomic, strong) JSContext *context;

    1, oc调用js的方法并获取参数

    - (void)webViewDidFinishLoad:(UIWebView *)webView{

        

    //初始化 context

        self.context = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];

        

        __block JJMessageViewController *messageSelf = self;

      //  details  是js的方法

        self.context[@"details"] = ^{

            

            NSArray *arg = [JSContext currentArguments];

            //获取的参数 也可以是id类型 (这里是将jsvalue转换成nsstring)

     

            for (JSValue *jsVal in arg) {

            

                NSLog(@"%@", jsVal.toString);

            //jsVal.toString 就是js传递的参数(这里是字符串)  也可以是一个数组或者字典

                

                messageSelf.messageTitle = jsVal.toString;

            }

            

        };

        

    }

     

    剩下的就在下面的这个方法中操作

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

        NSString *str = request.URL.absoluteString;;

        NSLog(@"url --- %@",str);

           

            NSRange range = [str rangeOfString:@"ios://jwzhangjie"];

            if (range.location != NSNotFound)

            {

                //这里操作其他动作

                

                return false;

            }

        return YES;

    }

     

    2. oc传参数给js  (触发按钮点击事件里面操作)

     

    - (void)deleteBtnClick:(UIButton *)sender 

    {

        //deleAll是js的方法

        JSValue * function = context[@"deleAll"];

      //delete是要传递给js的参数

        JSValue *result = [function callWithArguments:@[@"delete"]];

        

       //让js用一个弹出框弹出delete

    }

     

    目前用到这些  自己总结的  不对的请大家多多指教 

  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/Lovexiaohuzi/p/6483389.html
Copyright © 2011-2022 走看看