JS与OC交互
发布日期:2022-02-08 18:03:28 浏览次数:31 分类:技术文章

本文共 1450 字,大约阅读时间需要 4 分钟。

js调用OC:

① 直接调用方法
② 通过对象调用方法

第一种:

-(void)webViewDidFinishLoad:(UIWebView *)webView  {      //首先创建JSContext 对象(此处通过当前webView的键获取到jscontext)      JSContext *context=[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];          // MethodName是js的方法名称    //此方法最终将打印出所有接收到的参数,js参数是不固定的 我们测试一下就知道      context[@"MethodName"] = ^() {          NSArray *args = [JSContext currentArguments];          for (id obj in args) {              NSLog(@"%@",obj);          }      };      //此处我们没有写后台(但是前面我们已经知道iOS是可以调用js的,我们模拟一下)      //首先准备一下js代码,来调用js的函数test1 然后执行      //一个参数      NSString *jsFunctStr=@"MethodName('参数1')";      [context evaluateScript:jsFunctStr];            //二个参数      NSString *jsFunctStr1=@"MethodName('参数a','参数b')";      [context evaluateScript:jsFunctStr1];        }

第二种

// WebViewController.m@protocol JSObjcDelegate 
-(void)ShareInfo:(NSDictionary *)shareDict;@end@interface WebViewController ()
@property (nonatomic, strong) JSContext *jsContext;@end- (void)webViewDidStartLoad:(UIWebView *)webView { self.jsContext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]; self.jsContext[@"JSObjct"] = self; // JSObjct:JS的对象 self.jsContext.exceptionHandler = ^(JSContext *context, JSValue *exceptionValue) {// NSLog(@"异常信息:%@", exceptionValue); };}-(void)ShareInfo:(NSDictionary *)shareDict { if (shareDict.count) { // ... }}

转载地址:https://blog.csdn.net/Evelynzn/article/details/80222139 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:TableView与CollectionView的区别
下一篇:cocos2d-x的初步学习二十二之模仿微信打飞机

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月04日 15时55分15秒