JavaScriptCore使用
来源:互联网 发布:jsp和javascript的用途 编辑:程序博客网 时间:2024/05/22 01:57
js 调用 oc
1.自定义协议并继承 JSExport 协议
@protocol MyJSExport <JSExport> -(void)test;@end
2.实现 MyJSExPort 协议
@interface MyJSObject ()<MyJSExport>@end@implementation MyJSObject -(void)test{ //do something }@end
3.在 webViewDidFinishLoad 方法中获取 JSContext 对象(可以把 JSContext 理解为一个字典),并注入 oc 对象
@interface ViewController ()<UIWebViewDelegate>@property (weak, nonatomic) IBOutlet UIWebView *webview;@property (nonatomic, strong) JSContext *context;@end@implementation ViewController-(void)viewDidLoad { [super viewDidLoad]; _webview.delegate = self; NSURL *url = [NSURL fileURLWithPath:@"/Users/macmini/Desktop/1.html"]; [_webview loadRequest:[NSURLRequest requestWithURL:url]];}-(void)webViewDidFinishLoad:(UIWebView *)webView{ _context = [self.webview valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; MyJSObject *jsObject = [MyJSObject new]; _context[@"MyObj"] = jsObject;}@end
4.在 html 中调用 oc 方法
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>test javascript</title> </head> <body> <div> <button onclick="MyObj.test()">点击调用OC方法</button> </div> </body></html>
oc 调用 js 方法
1、在 Html 定义回调方法
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>test javascript</title> <script type="text/javascript"> function test(a) { alert(a); } </script> </head> <body> </body></html>
2.调用 JSContext 的 evaluateScript 方法执行 js 函数
[_context evaluateScript:@"test(123)"];
阅读全文
0 0
- JavaScriptCore 使用
- JavaScriptCore使用
- JavaScriptCore 使用
- JavaScriptCore 使用
- JavaScriptCore使用
- JavaScriptCore 简易使用
- JavaScriptCore.framework简单使用
- javascriptcore
- JavaScriptCore
- JavaScriptCore
- JavaScriptCore
- javascriptcore库的使用详解
- IOS webView 与JavaScriptCore 框架结合使用
- JavaScriptCore基本概念和基本使用(Swift)
- iOS开发-JavaScriptCore的使用-WebiOS开发
- iOS开发之JavaScriptCore的基本使用
- JavaScriptCore学习之JavaScriptCore
- ios上js引擎的使用,javascriptcore和v8
- CS50 2016-Week 2 学习笔记
- 复习数据结构,用java栈写了个计算器
- 9-6快速排序
- linux服务器日常常用监控命令以及指标瓶颈
- 英文学习
- JavaScriptCore使用
- Java学习笔记-枚举
- LeetCode496. Next Greater Element I
- JAVA中SSH三大框架整合的详细步骤_摘录于尚硅谷视频
- TabLayout的使用
- linux echo
- mybatis 查询 resultMap="" 只返回一条数据
- easyui 单元格合并
- 企业网站建设改版的未来方向