首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

来了,iOSJSCore与H5的交互

h5概念很热,咱们不多多说,但是在移动端的App某些需要快速开发的地方也是很有好处--可以把一部分不想做的,不方便做的甩给web端去做,咱么只需要做好native与web的通信就好啦?...今天的主角就是JSCore这个哥们,苹果爸爸开放出来很久被大家忽略的角色。这是一个很方便的进行JS与WebView进行通信的神器。既然是神器就理所当然能够方便的进行两端的相互通信。...这个就是我们主动与js打招呼的桥梁。...native通过context进行发消息 1 native 主动发消息给WebView 上文我们拿到了js上下文,就可以直接调用js的function啦,例如我们传递网络的token [...最后是一个兼容性的彩蛋,也是最坑的一点---alert UIAlert在iOS 9之后慢慢被禁用,而到了iOS13之后这问题异常严重,然鹅直接js进行alert居然报错,好在是哟办法的 这里附上几种带和不带输入和提示框的

1.2K30

V8、JSCore、Hermes、QuickJS,hybrid开发JS引擎怎么选

这点在今天讨论的 JS 引擎,JSC 是最能打的。...不过在实际应用,不做重 CPU 的运算只当胶水语言使用,JSC 还是绰绰有余了。 上面的讨论都是针对 iOS 系统的,在 Android 系统上,JSC 的表现就不尽人意了。...一般来说 JSVM 启动后,第一步往往是解析 JS 文件,这个还是比较耗时的,V8 支持预先生成 Heap snapshots,然后直接加载到堆内存,快速的获得 JS 的初始化上下文。...综合来看 V8 的确是 JSVM 的性能王者,Android 端使用时可以完全发挥它的威力,但是 iOS 平台因为主场劣势,并不是很推荐。...从 集成 的角度上看,社区上已经有了 iOS[27] 和 Android[28] 的示例项目,可以拿来用来参考接入到自己的工程

14.2K137
您找到你想要的搜索结果了吗?
是的
没有找到

【转】深入理解JSCore

作为一名iOS开发工程师,了解JSCore已经逐渐成为了必备技能之一。 从浏览器谈起 在iOS 7之后,JSCore作为一个系统级Framework被苹果提供给开发者。...iOSJSCore iOS7之后,苹果对WebKitJSCore进行了Objective-C的封装,并提供给所有的iOS开发者。...iOS可以使用JSCore的地方有多处,比如封装在UIWebViewJSCore,封装在WKWebViewJSCore,以及系统提供的JSCore。...而在本文中,我们主要介绍iOS系统自带的JSCore Framework。 iOS官方文档对JSCore的介绍很简单,其实主要就是给App提供了调用JS脚本的能力。...戴铭:深入剖析 WebKit JSCore-Wiki [知乎Tw93]iOSJSCore 原文链接:http://www.cnblogs.com/meituantech/p/9528285.html

97220

深入理解JavaScriptCore

作为一名iOS开发工程师,了解JSCore已经逐渐成为了必备技能之一。 从浏览器谈起 在iOS 7之后,JSCore作为一个系统级Framework被苹果提供给开发者。...iOSJSCore iOS7之后,苹果对WebKitJSCore进行了Objective-C的封装,并提供给所有的iOS开发者。...iOS可以使用JSCore的地方有多处,比如封装在UIWebViewJSCore,封装在WKWebViewJSCore,以及系统提供的JSCore。...而在本文中,我们主要介绍iOS系统自带的JSCore Framework。 iOS官方文档对JSCore的介绍很简单,其实主要就是给App提供了调用JS脚本的能力。...参考资料 《JavaScript高级程序设计》 Webkit Architecture 虚拟机随谈(一) 深入剖析 WebKit JSCore-Wiki iOSJSCore 作者简介 唐笛,美团点评高级工程师

1.3K30

【小程序开发必读】怎样写出一手好的小程序之多端架构篇

具体执行 appservice 的逻辑内容 开发者工具的通信模式 一开始考虑到安全可控的原因使用的是双线程模型,简单来说你的所有 JS 执行都是在 JSCore 完成的,无论是绑定的事件、属性、DOM...JSCore 深入浅出 在 IOS 和 Android 上,都提供了 JSCore 这项工程技术,目的是为了独立运行 JS 代码,而且还提供了 JSCore 和 Native 通信的接口。...在 Android 和 IOS 平台都提供了各自运行的 JSCore,在国内大环境下运行的工程库为: Anroid: 国内平台较为分裂,不过由于其使用的都是 Google 的 Android 平台,所以...简单执行 JS 脚本 使用 JSCore 可以在一个上下文环境执行 JS 代码。...这里主要考虑到你 JS 执行的位置。比如,你可以直接通过 JSCore 执行 JS,或者直接将 JSContext 和 webview 的 Context 绑定在一起。

1.5K60

如何写出一手好的小程序之多端架构篇

具体执行 appservice 的逻辑内容 开发者工具的通信模式 一开始考虑到安全可控的原因使用的是双线程模型,简单来说你的所有 JS 执行都是在 JSCore 完成的,无论是绑定的事件、属性、DOM...JSCore 深入浅出 在 IOS 和 Android 上,都提供了 JSCore 这项工程技术,目的是为了独立运行 JS 代码,而且还提供了 JSCore 和 Native 通信的接口。...在 Android 和 IOS 平台都提供了各自运行的 JSCore,在国内大环境下运行的工程库为: Anroid: 国内平台较为分裂,不过由于其使用的都是 Google 的 Android 平台,所以...简单执行 JS 脚本 使用 JSCore 可以在一个上下文环境执行 JS 代码。...这里主要考虑到你 JS 执行的位置。比如,你可以直接通过 JSCore 执行 JS,或者直接将 JSContext 和 webview 的 Context 绑定在一起。

98230

如何写出一手好的小程序代码,从架构说起

具体执行 appservice 的逻辑内容 02 开发者工具的通信模式 一开始考虑到安全可控的原因使用的是双线程模型,简单来说你的所有 JS 执行都是在 JSCore 完成的,无论是绑定的事件、属性...03 JSCore 深入浅出 在 IOS 和 Android 上,都提供了 JSCore 这项工程技术,目的是为了独立运行 JS 代码,而且还提供了 JSCore 和 Native 通信的接口。...在 Android 和 IOS 平台都提供了各自运行的 JSCore,在国内大环境下运行的工程库为: · Anroid: 国内平台较为分裂,不过由于其使用的都是 Google 的 Android 平台,...简单执行 JS 脚本 使用 JSCore 可以在一个上下文环境执行 JS 代码。...这里主要考虑到你 JS 执行的位置。比如,你可以直接通过 JSCore 执行 JS,或者直接将 JSContext 和 webview 的 Context 绑定在一起。

1.9K20

闲谈 iOS 的动态化

后来出现了一个叫做 Wax 的项目(这个项目目前由阿里巴巴维护),这个项目打出的口号是用 Lua 来写 iOS 原生应用,当然现实没有人会这样干,因为写起来实在是太痛苦了。...# 后来居上的 JSPatch iOS 7 的时候 Apple 推出了 JavaScriptCore,这是一个非常有趣的框架,他是 JS 与原生交互的桥梁,让你在原生和 JS 之间穿梭自如,现在 iOS...JSCore 推出不久之后,一个更优秀的项目诞生了:由 bang 写的 JSPatch。...JSPatch 的接入成本非常低,对项目的影响也非常小,不需要引入额外的脚本解释器(因为已经有 JSCore 了),并且 JS 写起来真的比 Lua 要爽很多。...# 吊胃口的 DynamicCocoa 和 OCScript 这个其实没有太多好说的,毕竟大家的胃口已经被的差不多了,而且按这个样子应该会继续吊下去。

42420

深入理解JSCore后续

前几天写过一篇文章深入理解JSCore,本文是对该文的补充与再理解。...在iOS7之前,苹果并没有开放JavaScriptCore引擎,如果你想使用JSCore的话,就需要手动从开源WebKit编译出来,而且其接口都是C语言,这对于iOS开发者而言非常不友好。...JSCore是WebKit默认内嵌的JS引擎,很多基于WebKit分支开发的浏览器都开发了自己的JS引擎,比如Chrome的V8,这些JS引擎的使命都一样,那就是解释执行JS代码。...JSCore 包含解释器和运行时两部分,解释器主要将高级的JS脚本语言编译成字节码,运行时主要用来管理运行时的内存空间。...这一步其实就是编译,但是编译JS脚本语言跟编译其他的编译型语言不同的是,编译完脚本语言之后,并不会生成存在磁盘的可执行文件,而是直接解释执行。

1.6K20

iOS开发OC与JS交互(UIWebView)

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数据 /*block捕获...的方法名改掉,OC找不到相应方法,这里就会打印异常信息 NSLog(@"异常信息:%@", exceptionValue);     }; } 苹果有了 <JavaScriptCore/JavaScriptCore.h

3.9K30

iOS开发的WKWebView与JS的交互

/u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与...注意:在利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码的方法名,而我们在使用WKWebView的时候就不用了。...JS代码利用  alert('liangsen...'); 来给我们传递数据,我们用runJavaScriptAlertPanelWithMessage这个方法来接收JS传递给我们的数据。...js alert in js'}); AppModel是我们注入的对象,“()”的内容是我们传递给客户端的数据。...客户端需增加的代码: // 注入JS对象名称AppModel,当JS通过AppModel来调用时, // 我们可以在WKScriptMessageHandler代理接收到  [config.userContentControlleraddScriptMessageHandler

2.2K20

React-Native与小程序的底层框架比较

UI 基于react框架(虚拟dom) 首先Js层通过jsx编写的Virtual Dom来构建Component Native层将其转成真实DOM插入到原生 App 的页面。...通信 基于JSCore实现js与java/oc交互 把JSX代码解析成javaScript代码 读取JS文件,并利用利用JS脚本引擎执行 返回一个数组,数组中会描述OC/Java对象,描述对象属性和所需要执行的方法...通过通信机制通知Native,Native会根据布局插入一块原生区域并渲染 3.当webview得知位置或宽高发生变化时,通知Native做相应的调整 通信 视图层客户端(大部分原生组件涉及) iOS...平台可以往JavaScripCore框架注入一个全局的原生方法 安卓方面则是跟渲染层一致的 开发者工具 开发者工具,逻辑层实际上是使用一个隐藏着的标签来模拟JSCore的。...并通过将JSCore不支持的BOM对象局部变量化,使得开发者无法在小程序代码中正常使用BOM,从而避免不必要的错误 开发者工具底层维护着一个WebSocket服务器,用于在WebView与开发者工具之间建立可靠的消息通讯链路

2.8K10

微信小程序运行机制

运行环境差异 iOS:JavaScriptCore->WKWebView渲染 Android:X5 JSCore来解析(X5基于Mobile Chrome 53/57 内核) DevTool:nwjs-...>Chrome Webview渲染 架构 两个线程 视图层(webView)->渲染页面 AppService逻辑层(JSCore)->逻辑处理、数据请求、接口调用 setData完整流程代码...即用户传输的数据,需要将其转换为字符串形式传递,同时把转换后的数据内容拼接成一份 JS 脚本,再通过执行 JS 脚本的形式传递到两边独立环境。...依赖浏览器环境的js库不能使用,因为是JSCore执行的,没有window、document对象。 WXSS无法使用本地(图片、字体等)。 WXSS转化成js 而不是css。...全部使用https,确保传输安全。 加入rpx单位,隔离设备尺寸,方便开发。 ::: tip rpx(responsive pixel): 可以根据屏幕宽度进行自适应。

1.1K20

玩转RN:IOS如何导出原生模块并在js调用

,换句话说,在 RN 开发,大多数时候,开发者并不需要关心 native 那一层,安心编写react组件以及相应的业务逻辑就可以了。...不过有的时候,也会需要用到原生的模块,比如: 高性能计算:图片处理、文件压缩等; 复用native已有的模块:比如跨Android、IOS的链接库等; RN 尚不支持的native模块:比如iOS SDK...调用 从 js 调用自定义的原生模块非常简单,代码如下: import {NativeModules} from 'react-native'; const TodoList = NativeModules.TodoList...", item]; reject(@"ErrorFromNativeModule", errMsg, error); } } 其次,在 index.js 添加调用...相关链接 2019.11.07-calling-native-module-from-js-in-rn/ https://facebook.github.io/react-native/docs/native-modules-ios

2K50
领券