iOS下JS与原生OC互相调用

    今天需要做html 和oc 的调用 找到一篇文章,实现了功能。转载纪录一下。

   在iOS 7之后,apple添加了一个新的库JavaScriptCore,用来做JS交互,因此JS与原生OC交互也变得简单了许多。
首先导入JavaScriptCore库, 然后在OC中获取JS的上下文

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

再然后定义好JS需要调用的方法,例如JS要调用share方法:
则可以在UIWebView加载url完成后,在其代理方法中添加要调用的share方法:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    JSContext *context = [self.webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; //定义好JS要调用的方法, share就是调用的share方法名 context[@"share"] = ^() { NSLog(@"+++++++Begin Log+++++++"); NSArray *args = [JSContext currentArguments]; UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"方式" message:@"OC原生的弹出窗" delegate:self cancelButtonTitle:@"收到" otherButtonTitles:nil];
        [alertView show]; for (JSValue *jsVal in args) { NSLog(@"%@", jsVal.toString);
        } NSLog(@"-------End Log-------");
    };
}
其中相对应的html部分如下:
<html> <header> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function secondClick() {
                share('分享的标题','分享的内容','图片地址');
            } function showAlert(message){
            alert(message);
        } </script> </header> <body> <h2> 方式 </h2> <br/> <br/> <button type="button" onclick="secondClick()">Click Me!</button> </body> </html>


转载于:https://my.oschina.net/u/2320354/blog/620445

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值