吕文翰 php,自己动手打造基于 WKWebView 的混合开发框架(二)——js 向 Native 一句话传值并反射出 Swift 对象执行指定函数...
自己动手打造基于 WKWebView 的混合开发框架(二)——js 向 Native 一句话传值并反射出 Swift 对象执行指定函数
2015-9-2 / 阅读数:39757 / 分类: iOS & Swift
本篇文章中,我将跟大家一起学习使用 WKWebView 屌炸天的新传值方式,实现从 Javascript 层向 Native 层的传值,并反射出我们想要的对方,执行我们想要的方法。
Javascript 层和 Native 层的定义
基本定义
Javascript 层此处指网页中的 js runtime,就是所有 js 运行的地方,我们将其看做一层 js 虚拟机。而此处的 Native 层指的是 Swift 或者 OC 代码运行的那层,严格意义上来讲,这一层并没有运行时(runtime),他们都是编译型语言,在硬件设备上运行时,用的都是二进制形式,所有变量的字符串名称亦不再存在,只有指针。
苹果的 runtime 技术
为了避免上文中编译型语言的缺点,苹果构造甚至直接开放了 runtime,不仅在编译的时候存储了 名称(类,函数,变量)<=>指针 对应表,还把这些底层 runtime 接口开放给所有开发者使用。以我对 OC 浅薄的了解,似乎 OC 底层的面向对象的实现就是直接用的 runtime。
有了 名称<=>指针 对应表,我们就可以胡作非为啦 HIAHIA~
屌炸天的一句话传值
苹果在 WKWebView 中的 js runtime 里事先注入了一个 window.webkit.messageHandlers.OOXX.postMessage() 方法&#
吕文翰 php,自己动手打造基于 WKWebView 的混合开发框架(二)——js 向 Native 一句话传值并反射出 Swift 对象执行指定函数...相关推荐
- 吕文翰 php,自己动手写一个 iOS 网络请求库(三)——降低耦合
自己动手写一个 iOS 网络请求库(三)--降低耦合 2015-5-22 / 阅读数:16112 / 分类: iOS & Swift 本文中,我们将一起降低之前代码的耦合度,并使用适配器模式实 ...
- iOS 拓展,icon,尺寸 开发系列 吕文翰
iOS开发拓展篇-应用之间的跳转和数据传递 iOS和安卓APP启动图标的尺寸和圆角大小详解 iOS和安卓手机的APP图标尺寸规范和图标命名规范 – 25学堂 good iOS 设置App图标Icon. ...
- 怎么用文本文档写html框架,基于Metronic的Bootstrap开发框架经验总结(17)-- 使用 summernote插件实现HTML文档的编辑和图片插入操作...
在很多场合,我们需要在线编辑HTML内容,然后在页面上或者其他终端上(如小程序.APP应用等)显示,编辑HTML内容的插件有很多,本篇介绍基于Bootstrap的 summernote插件实现HTML ...
- 基于Qt大恒工业相机二次开发demo-C++
目录 1.新建工程 2.文件及属性配置 2.1文件拷贝 2.2VS项目属性配置 2.2.1包含目录和库目录添加 2.2.2附加依赖项添加 3.添加基于官方mfc代码改写的CGXBitmap类 3.1添 ...
- 群晖nas介绍文档_群晖 NAS 选购 入门指南:动手打造自己的家庭数据中心
原标题:群晖 NAS 选购 & 入门指南:动手打造自己的家庭数据中心 Matrix 精选 Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考.我们会不定期挑选 ...
- 一起动手打造个人娱乐级linux
我们使用电脑,一直以来用的都是windows,但是对于像我这种爱折腾的人来说,尝试使用linux系统应该是一种不错的体验.说到linux,许多人可能都没听过,或者知道的人对它印象是这样的: 然而,li ...
- 7 centos 查看程序文件数量_「动手打造家庭媒体网络平台」安装篇-centos搭建DLNA媒体服务...
大家好,我是路程lucky,热爱开发.设计.学习.生活.爱捣鼓的web前后端工程师~ 本文的重点是在之前文章提到创建的centos基础上继续搭建DLNA媒体服务.由于centos的系统是从零开始初步安 ...
- 深入浅出PE文件格式---自己动手打造PE Show
深入浅出PE文件格式---自己动手打造PE Show 作者:WiNrOOt // ...
- (转)如何动手打造属于自己的智能家居
转自:http://www.cocoachina.com/programmer/20140629/8974.html 2014-06-29 14:11 编辑: suiling 分类:程序人生 来源:C ...
最新文章
- php剪切文件,C/C++文件剪切复制删除
- day21-python模块
- activiti脚本任务_Activiti中的高级脚本:自定义配置注入
- linux 删除N天文件
- SpringBoot学习之文件结构和配置文件
- docker-rabbitmq
- 前端实战|React18项目启动——pc端极客园项目前置准备
- iis打不开php,php出现404找不到网页错误 iis配置问题解决
- 原生Js汉语拼音首字母匹配城市名/自动提示列表
- 黑盒测试中的因果图约束条件解释
- STM32G0 硬件SPI+DMA+LL库,最高通讯速率32MBit/s
- hmailserver搭建一个公网可收发的自用邮局
- Retrofit详解(一)(Retrofit创建过程)
- 【亚稳态、建立时间和保持时间】亚稳态的产生原因、危害及解决方法
- laravel php配置,配置 - Configuration
- 我的五大开仓点与五大平仓点 开仓点
- VS2019怎么没有C++的窗体应用模板_衡州销售支架z型钢价格-怎么样_浙江铭凯
- 电脑重启出现蓝屏提示“beginning dump of physical memory”解决方法
- 中国科学院邮件系统服务器信息,中国科学院邮件系统帮助中心
- 消息队列的pull与push模式理解