/u010105969/article/details/53541088 本篇博客则是讲了OC传值给JS,代码似乎更简单。...给JS传值需要再网页加载完成之后进行,当初我传值给JS的是用户的登录状态,JS需要拿到用户的登录状态去进行收藏的操作。...注意:JS能接收到OC传递的数据,但却不能进行输出,需要进行判断,看接收到的数据是不是某个数据。...当初在做这块的时候iOS这边打印的一直是null,写JS的哥们也一直说没有接收到数据,(他说我的代码有问题,我说他的代码有问题),最后才发现JS接收到的数据不能输出打印,只能进行判断。...再次提醒:这种OC给JS传参数的方式实际就是OC调用JS方法,传的值是JS方法的一个参数。 好了,博客很短,代码很简单,希望帮到那些在找OC传值给JS方法的童鞋们。
引: 很多人知道可以用Category给已有的类添加一些新方法,但是不同于swift中的extension,Objective-C中的Category(类别)是不支持直接添加属性的,那如果就是需要添加新的属性怎么办呢...关于Runtime的说明可以查看这篇博客:传送门:OC中Runtime浅析 Category(类别): 对于不熟悉Category的人,这里也先说明一下Category是什么以及怎么创建Category...由于一些特殊的需要,我们可能要给现有的类添加一些新的方法,这个需求用继承也可以做到,但是会显得比较重,这时候就可以用Category来达到目的,创建一个已有类的Category,可以给这个类添加你需要的方法...所以我们首先需要自己去添加setter、getter方法,这个好办,直接在.m文件里加就可以了,但是要真正添加可以使用的属性,还需要利用Runtime来关联对象,关于关联对象的技术可以看传送门:OC中Runtime...结 以上就是给Category添加属性的方法啦,不难,只要了解Runtime中的关联对象技术就可以轻松达到了。
https://blog.csdn.net/u010105969/article/details/53189934 之前虽然做过OC与JS交互,但都是比较简单的效果:点击网页中的图片,然后进行图片浏览...现在对OC与JS交互这块也不是很清楚,今天只是把之前的代码贴过来以便今后更好地理解OC与JS的交互。 首先需要往网页中注入JS。注入JS的工作是后台做的。...可好像安卓和iOS还是有区别的,因为之前安卓那边可以实现与JS的交互,而我这边却不能。后台后台修改了代码,我这边也就可以进行交互了。...documentView.webView.mainFrame.javaScriptContext"]; _jsContext[@"startFunction"] =^(id obj){ ////这里通过block回调从而获得h5传来的json数据...附上利用WKWebView加载网页OC与JS的交互的地址: http://mp.blog.csdn.net/postedit/53541088
iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。...关于这种方式调用OC方法,唐巧早期有篇文章有过介绍: 关于UIWebView和PhoneGap的总结 方式二 在iOS 7之后,apple添加了一个新的库JavaScriptCore,用来做JS交互,...iOS下JS与OC互相调用(一)--UIWebView 拦截URL iOS下JS与OC互相调用(二)--WKWebView 拦截URL iOS下JS与OC互相调用(三)--MessageHandler...iOS下JS与OC互相调用(四)--JavaScriptCore iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge iOS下JS与OC互相调用...(六)--WKWebView + WebViewJavascriptBridge iOS下JS与OC互相调用(七)--Cordova 基础 iOS下JS与OC互相调用(八)--Cordova详解+实战
创建一个JSContext对象的方式有: // 1.这种方式需要传入一个JSVirtualMachine对象,如果传nil,会导致应用崩溃的。...奇怪的是竟然可以更新部分UI,例如给view设置背景色,调用webView执行js等,但是弹出原生alertView就会在控制台报子线程操作UI的错误信息。...当然我们可以将JSContext 和JSValue当做block的参数传进去,这样就可以使用啦。 2.3 OC调用JS方法 OC调用JS方法就有多种方式了。...当然,我们也可以给已经存在的类动态添加协议,来使其可以供JS 使用。...WKWebView中如何实现OC与JS交互可以看前面这篇文章:iOS下JS与OC互相调用(三)--MessageHandler UIWebView利用JavaScriptCore来实现交互的示例工程:JS_OC_JavaScriptCore
使用WKWebView的时候,如果想要实现JS调用OC方法,除了拦截URL之外,还有一种简单的方式。那就是利用WKWebView的新特性MessageHandler来实现JS调用原生方法。...WKScriptMessageHandler是因为我们要处理JS调用OC方法的请求。...因为我们给每一个OC 方法取了一个name,那么我们就可以根据name 来区分执行不同的方法。body 中存着JS 要给OC 传的参数。...([67,205,128,0.5]); } 5.OC调用JS 这里使用WKWebView 实现OC 调用JS方法跟上一篇是一样的,还是利用 - evaluateJavaScript:completionHandler...地址:JS_OC_MessageHandler
PhoneGap 是Nitobi软件公司2008年推出的一个框架,旨在弥补web 和iOS 之间的不足,使得web 和 iPhone SDK 之间的交互更容易。...安装Cordova ** Cordova 命令行需要运行在 Node.js 上,在 NPM 也可用。我们可以按照 platform specific guides 去安装别的依赖平台。...因此,在安装Cordova之前,要先安装Node.js 和 NPM(可以参考文章Mac 下安装Node.js)。...,那么就输入: cordova platform add ios 注意ios 要小写。...当然,如果我们想要在iOS 上运行 App,我们也可以输入: cordova run ios 也可以到指定目录下打开iOS 工程文件 ?
目前我Demo中的WebViewJavascriptBridge库在最新的iOS系统有崩溃,各位在使用该第三方库时,要先更新到最新版本。...第四步、完成HMTL必要的JS代码 由于WebViewJavascriptBridge也是拦截URL来实现的调用原生功能,所以有一些代码跟之前iOS下JS与OC互相调用(一)中的HTML JS代码很相似...,取回调用js中callHandler传进去的参数。...到此 利用WebViewJavascriptBridge实现JS 调用iOS Native 就完成了。...提醒: JS 有动态参数的特性,调用js 的方法,可以传0个参数,1个参数,N个参数都可以。
来实现JS 与OC 的互相调用的。...下面开始介绍WKWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用。...responseCallback) { // 获取位置信息 NSString *location = @"广东省深圳市南山区学府路XXXX号"; // 将结果返回给js...下JS与OC互相调用(一)--UIWebView 拦截URL,你就会发现这个方法与loadURL很像。...示例工程地址:JS_OC_WebViewJavascriptBridge Have Fun!
目前我已知的JS 与 OC 交互的处理方式: 1.在JS 中做一次URL跳转,然后在OC中拦截跳转。...我去年也写过一个相互调用的总结:iOS下JS与原生OC互相调用(总结)。 写的比较粗糙,因此准备新开一个目录专题来记录JS 与原生交互的处理方式。...UIWebView 拦截URL 我之前就使用的是UIWebView + 拦截URL 的方式实现的JS与OC 交互。 原因是因为要兼容iOS 6。 1.创建UIWebView,并加载本地HTML。...中调用OC 方法的时候,也需要传参数到OC 中,怎么传呢?...OC调用JS方法 关于将OC 执行结果返回给JS 需要注意的是: 如果回调执行的JS 方法带参数,而参数不是字符串时,不要加单引号,否则可能导致调用JS 方法失败。
扯两句,可以跳过 由于项目中Cordova相关功能一直是同事在负责,所以也没有仔细的去探究Cordova到底是怎么使用的,又是如何实现JS 与 OC 的交互。...1.新建工程,添加Cordova 关键类 我这里用Xcode 8 新建了一个工程,叫 JS_OC_Cordova,然后将Cordova关键类添加进工程。 有哪些关键类呢?...content = arguments[1]; NSString *url = arguments[2]; // 这里是分享的相关代码...... // 将分享结果返回给js...示例代码如下: // 将分享结果返回给js NSString *jsStr = [NSString stringWithFormat:@"shareResult('%@','%@','%@')...示例工程的github地址:JS_OC_Cordova Have Fun!
在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互。 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView。...调用 JS 方法 JS 调用OC 方法后,有的操作可能需要将结果返回给JS。...这时候就是OC 调用JS 方法的场景。 WKWebView 提供了一个新的方法evaluateJavaScript:completionHandler:,实现OC 调用JS 等场景。...- (void)getLocation { // 获取位置信息 // 将结果返回给js NSString *jsStr = [NSString stringWithFormat...示例工程地址:JS_OC_URL
最近公司弄点这样的需求,我借此机会学习重新温故了一下,Js掉用android原生的方法 还有把值传回给js的方法 JavaScript掉Android原生 android代码 private void...(new StartOne(), "test"); } 说明: new StartOne() 启动回调的方法, 这个test是启动 JavaScript回调原生方法的必不可少的,IOS...Android原生给JavaScript传值的方法有好多,我写个我常用的方法 =_=!...Android原生给JavaScript传值 js调起android原生,原生android处理一些业务逻辑之后,再把处理完的结果返回给js android代码 mWebView.loadUrl...("javascript:WriteX('"+s+"')"); WriteX 是与js商定的或回传方法 JavaScript代码 function WriteX
js中onclick传json数据 现在要在onclick事件中传递对象参数,由于我们是通过字符串拼接传的,那我们传之前用JSON.stringify(value)先将JSON对象转为JSON字符串,...传之后再用eval(value)将JSON字符串转为JSON对象。
2.1 JavaScript的常见作用 给HTML网页添加动态功能,比如响应用户的各种操作 操纵HTML元素,比如添加、删除、修改网页元素 2.2 常见的JavaScript函数 alert(10);...决定网页的事件 2.html学习网站:W3School 3.2 OC和JS代码的互调 OC调用JS的代码 NSString *str = [self.webView stringByEvaluatingJavaScriptFromString...:@"sum()"]; JS调用OC的说明 新的需求:点击按钮的时候拨打电话 但是我在点击按钮的时候,用户是不知道的,我们怎么能够知道用户点击了网页上面的一个按钮,只能通过一个技巧,那就是自己搞一个特定的协议头比如说...OC里面有通过字符串生成SEL类型的方法,所以当拿到数据之后做下面的事情 截取方法的名称 将截取出来的字符串转换为SEL 利用performSelect方法来调用SEL 涉及到的相关方法 //判断字符串是否以一个固定的字符开头...subject=程序异常崩溃,请配合发送异常报告,谢谢合作!"]
今天我们来看看,如何将 Java 对象 和 List 集合传值给 JS 调用。...1 如何将 Java 对象实例传值给 JS 其实将我们在 Android 原生中将 Java 对象实例传值给 JS 承认并且可以使用的对象,方法非常简单。我们来举个例子。...它就是我们传值进行的 Java 对象实例。直接就可以使用,获取了年龄,名字,和性别属性。那我们该如何声明该对象,才会被 JS 所承认呢?...wv.loadUrl("javascript:callJS()");这句话的意思就是:调用JS中的方法 callJS()函数方法。 2 Java List如何传给 JS 呢?...其实按道理来说,是不可以将List集合直接传值给 JS 使用,但是既然对象可以传值,JS 可以调用 java 对象,也可以调用 Android 中的方法,那我们就一拆分的形式传过去。
然后点击下一页的按钮 通过js的响应显示另一个网页 最后通过下一页的按钮可以返回到首页。 本文仅仅是h5跟ios 的交互的入门 所以没有做细致的描述。...首先先说一下思路:我的项目中是那样的:首先h5从后台拿到数据,然后我请求h5的界面,然后通过h5的按钮进行选择,通过ios控制按钮到那个界面。 这个小demo不涉及数据传输,只是界面的交互。...我这边采用的方式是:通知传值的方式 思路: 在webviewVC的界面初始化的时候就要把通知加上 然后 登录成功之后 发送通知 将值传给h5 //添加一个通知 等着需要传值给html的时候就用这个通知...跟h5 相互船传值就是这么简单。...代码 3.运行 oc代码: // // ViewController.m // OC与JS交互之WKWebView // // Created by user on 16/8/18. //
概述 React Native用iOS自带的JavaScriptCore作为JS的解析引擎,但并没有用到JavaScriptCore提供的一些可以让JS与OC互调的特性,而是自己实现了一套机制,这套机制可以通用于所有...char *__rct_export_entry__[] = { __func__, #JS_name } 这个宏的作用是用编译属性attribute给二进制文件新建一个section,属于DATA数据段...可以看到可执行文件数据段多了个RCTExport段,内容就是各个要暴露给JS的方法。...问题剖析 上述第4步留下一个问题,JS是怎样把数据传给OC,让OC去调相应方法的? 答案是通过返回值。...JS不会主动传递数据给OC,在调OC方法时,会在上述第4步把ModuleID,MethodID等数据加到一个队列里,等OC过来调JS的任意方法时,再把这个队列返回给OC,此时OC再执行这个队列里要调用的方法
iOS和JS的交互看似两个问题,其实要解决的问题只有一个,那就是JS如何调用native方法。...Block传值,实现JS调用OC 3. 模型实现,JS直接用oc方法名来调用oc方法 4....= NSNotFound) { /* 1.检测到链接中包含有特殊字段,客户端要接受响应并做后续处理这就相当于js调起了iOS, 2.在真实的使用时,客户端需要和...方法,即实现了JS对于OC的调用 [weakSelf printInfo:objString]; } }; } 3.模型实现,JS直接用oc方法名来调用...oc方法 这种方法的优点在于,JS可以直接用oc方法名来调用oc方法,这样就类似于安卓的addJavaScriptInterface方法,在使用此方法时仍然要导入JavaScriptCore //第一步
领取专属 10元无门槛券
手把手带您无忧上云