OC-Js的交互问题

 最近空闲,把以前接触到的关于JS与OC之间是如何交互的给大家总结一下,同时附上网页端的代码,让大家看起来轻松明了!

1、iOS端需要处理的事情

先添加javascriptcore.framework的系统库

#import <JavaScriptCore/JavaScriptCore.h>添加头文件

-(void)makeWebView

{

    UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0,64,SCREEN_WIDTH,SCREEN_HEIGHT-64)];

    webView.delegate=self;

    [self.view addSubview:webView];

    [SVProgressHUD showWithStatus:@"正在加载中……"maskType:SVProgressHUDMaskTypeBlack];

    self.href=[@"http://" stringByAppendingString:self.href];

    //准备webView的属性

    NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:self.href]];

    [webView loadRequest:req];

    webView.scalesPageToFit =YES;//让页面大小适配

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

 context[@"userToAppointment"] = ^() {

     //项目名称、医生名字、预约价格、商品id

          NSArray *args = [JSContextcurrent Arguments];

            AppointOrderViewController * appointOrder = [[AppointOrderViewController alloc]initWithNibName:@"AppointOrderViewController" bundle:nil];

            appointOrder.projectName =[NSString stringWithFormat:@"%@",args[0]];//不转成字符串的话,给控件“Lable”赋值时会为空

            appointOrder.appointDoctor = [NSString stringWithFormat:@"%@",args[1]];

            appointOrder.appointPrice =[NSString stringWithFormat:@"%@",args[2]];

            appointOrder.projectID = [NSString stringWithFormat:@"%@",args[3]];

            appointOrder.shopName=[NSString stringWithFormat:@"%@",args[0]];

            [self.navigationController pushViewController:appointOrder animated:YES];      

    };

context[@"doctorPage"]=^(){

     //医生id

        NSArray *doctorIdArr = [JSContext currentArguments];

       DoctorHomePageViewController * docHomePage = [[DoctorHomePageViewController alloc] initWithNibName:@"DoctorHomePageViewController" bundle:nil];

        docHomePage.doctID =doctorIdArr[0];

        [self.navigationController pushViewController:docHomePage animated:YES];    

    };


}

2、网页端的代码

2.1点击网页的按钮调用网页中自己的方法:

 
2.2在网页调用自己的方法的实现中调用与网页端商定好的OC的方法,并进行传值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值