OC向JS传递参数

作者: smooth_lgh | 来源:发表于2017-07-22 18:09 被阅读20次
  • index.html的写法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<div style="margin-top: 20px">
<h2>JS与OC交互</h2>
<input type="button" value="OC给JS传值" onclick="tianbai.call()">
</div>
<script>
var Callback = function(name,password)
{
    var str = name+password;
    alert(str);
}

</script>
</body>
</html>
  • 在ViewController文件中
#import "ViewController.h"
#import <JavaScriptCore/JavaScriptCore.h>
@interface ViewController ()<UIWebViewDelegate>

@property(nonatomic,strong) UIWebView *indexWebView;

@property(nonatomic,strong)JSContext *jsContext;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.indexWebView = [[UIWebView alloc]initWithFrame:self.view.bounds];
    self.indexWebView.delegate = self;
    NSString* path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSURL* url = [NSURL fileURLWithPath:path];
    NSURLRequest* request = [NSURLRequest requestWithURL:url] ;
    [self.indexWebView loadRequest:request];
}

#pragma mark - UIWebViewDelegate

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
    self.jsContext[@"tianbai"] = self;
    self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {
        context.exception = exceptionValue;
        NSLog(@"异常信息:%@", exceptionValue);
    };
}

- (void)call{
    NSLog(@"call");
    // 之后在回调js的方法Callback把内容传出去
    JSValue *Callback = self.jsContext[@"Callback"];
    //传值给web端
    [Callback callWithArguments:@[@"liuguanhua",@"123456"]];
}
  • 效果图
效果图.png

其中 liuguanhua123456就是OC这边传递过来的参数.

相关文章

  • OC向JS传递参数

    index.html的写法 在ViewController文件中 效果图 其中 liuguanhua123456就...

  • Cocos creator ios开发—Javascript和O

    本文以oc层以AppController.mm为例 一、js层向oc层发送消息: 1、传递1个参数:js层发送 o...

  • UIWebView

    加载请求 JS和OC互相调用 利用NSInvocation 和 performSelector 实现传递无限参数 ...

  • iOS原生&JS交互

    OC 获取js中的key OC调用js方法 JS调用OC中不带参数的block JS调用OC中带参数的block ...

  • 传递参数

    js中所有的函数都是按值传递的。在向参数传递基本类型时,被传递的值会被复制给一个局部变量。 在向参数传递引用类型的...

  • UIWebview、WKWebviewJS交互,以及cookie

    众所周知,OC可以通过webView跟JS互相调用方法,互相传递参数 Cookie与Seesion介绍 cooki...

  • OC参数传递

    有一些原本我们认为很基础的,而且很理所当然的,在实践之后才发现,麻蛋原来是这样回顾一下c语言的参数传递 C语言中的...

  • Cococreator JS 调用OC, OC 调用JS

    JS 调用OC 不带参数的写法: JS 方法里面调用OC jsb.reflection.callStaticMet...

  • 原生与H5交互

    本文讲述使用协议进行H5和webView的交互,包含原生向JS传参和JS向原生传递参数 创建w...

  • Vue-Router2.0使用1

    main.js router.js 跳转 传递参数 接受参数 返回

网友评论

    本文标题:OC向JS传递参数

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