首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

swift&JS交互 - JavaScriptCore

swift&JS交互 - JavaScriptCore 自从iOS7之后Apple退出JavaScriptCore,极大的方便了iOS与H5的联系。...一、JavaScriptCore主要类 JSContext:JSContext是JS的执行环境,通过evaluateScript()方法可以执行JS代码 JSValue: JSValue封装了JS与ObjC...: JSExport是一个协议,遵守此协议,就可以定义我们自己的协议,在协议中声明的API都会在JS中暴露出来,这样JS才能调用原生的API 二、直接通过JSContext执行JS代码 import JavaScriptCore...//记得导入JavaScriptCore let context: JSContext = JSContext() let result1: JSValue = context.evaluateScript.../ 输出6 三、通过JSContext注入模型,然后调用模型的方法 1、首先定义一个协议SwiftJavaScriptDelegate 该协议必须遵守JSExport协议 这里必须使用@objc,因为JavaScriptCore

2.8K10

解决 JavaScriptCore 垃圾回收引起的崩溃

介绍 ---- 最近一直在做有关 JavaScriptCore 的技术需求,上周发现一个问题,当在JavaScriptCore 在垃圾回收时,项目会有一定几率发生崩溃。崩溃发生时调用堆栈如下: ?...猜想2:JavaScriptCore 在进行垃圾回收时不允许进行 JSObjectMake 从调用堆栈来看,每次崩溃都发生在 JSObjectMake 之后,这是不是意味着垃圾回收时不能进行JSObjectMake...图5 回调中调用 JSObjectMake 这样的改动就意味着,只要处于 JavaScriptCore 进行垃圾回收,就会立刻调用JSObjectMake。...JavascriptCore 存在两种垃圾回收方式,一种是同步回收,一种是异步回收,无论哪种方式,JavascriptCore 对虚拟机有共有的堆( Heap,JavascriptCore 的垃圾回收处理都在...查找 JavascriptCore 后发现,还真的有这个回调状态,只不过接口并没有对我们开放,Heap.h 中存在一个添加观察者的接口。 ?

1.4K20

判断js引擎是javascriptCore或者v8

来由   纯粹的无聊,一直在搜索JavaScriptCore和SpiderMonkey的一些信息,却无意中学习了如何在ios的UIWebView中判断其js解析引擎的方法: if (window.devicePixelRatio...通过额外引入或链接javascriptCore,可以在c层次与iOS进行通信,效率提高很大。...2,目前有三种方案实现oc与js通信,第一种继续使用cordova的通信机制,也就是目前比较流行的UIWebView;第二种采用React Native的通信机制,使用iOS7内置的javascriptCore...引擎并在js,oc两层搭建桥接层,并且每层持有2份相同的配置表,每个表中都记录js,oc透出的API,并结合iOS的事件机制完成oc和js的互调;第三种则仍是采用iOS7内置的javascriptCore...3, 综上三种方案,第一种代价最低,而且流程比较完善,而且已经系统化,但是性能是硬伤;第二种则是非常好的借鉴,RN的方式不仅仅适用于javascriptCore,而且也适用于其他引擎如SpiderMonkey

3.4K50

让你的iOS应用程序支持运行JavaScript脚本:JavaScriptCore框架详解

让你的iOS应用程序支持运行JavaScript脚本:JavaScriptCore框架详解     说到JavaScript脚本,iOS开发者都会想到一个名叫JavaScriptCore的框架。...我们先来看一张JavaScriptCore框架的结构图: ? 这张图是我手工画的,不是那么美观并且没有文字的解释,但是我觉得它能非常直观的表达JavaScriptCore中包含的类之间的关系。...1.JSVirtualMachine——JavaScript的虚拟机     JavaScriptCore中提供了一个名为JSVirtualMachine的类,顾名思义,这个类可以理解为一个JS虚拟机。...七、C语言风格的API解释     JavaScriptCore框架中除了包含完整的Objective-C和Swift语言的API外,也提供了对C语言的支持。    ...All rights reserved. // #import "ViewController.h" #import #import

5K30
领券