当前位置: 首页 > news >正文

天津网站建设班东莞+网站+建设+汽车

天津网站建设班,东莞+网站+建设+汽车,义乌网站优化,互联网营销行业前景在iOS7沸沸扬扬的扁平化论战之外#xff0c;WWDC 2013还是公布了很多让开发者小兴奋的点#xff0c;其中包括多任务加强支持background fetch和transfer#xff0c;近场通信的AirDrop和p2p#xff0c;以及游戏控制器和游戏中心的加强#xff1b;当然还包括了让web开发同学… 在iOS7沸沸扬扬的扁平化论战之外WWDC 2013还是公布了很多让开发者小兴奋的点其中包括多任务加强支持background fetch和transfer近场通信的AirDrop和p2p以及游戏控制器和游戏中心的加强当然还包括了让web开发同学很兴奋JavaScriptCore了。下面henry/webryan来详细介绍下整合JavaScriptCore到原生应用的情况。 1、什么是JavaScriptCore 前端开发的同学应该知道浏览器核心模块主要是渲染引擎和JavaScript引擎两部分组成。前者用于处理页面布局渲染及DOM结构等后者用于JavaScript的解析、执行及DOM交互等。 JavaScriptCore是一种JavaScript引擎主要为webkit提供脚本处理能力其主要以safari浏览器为代表。除此之外市面上还有注明的JscriptIE, SpiderMonkeyfirefox和V8chrome。JavaScriptCore是开源webkit的一部分它提供了强大的整合能力有兴趣的同学可以到官网下载编译和测试http://www.webkit.org/projects/javascript/ 2、为什么苹果要在native应用中非webview引入JavaScript 首先脱离了浏览器外壳和繁重的UI布局和渲染的JavaScript引擎无疑可以将JavaScript的能力更轻便地、高性能地带给原生的iOS应用给应用开发者提供更多的想象力无论是PC还是移动的浏览器UI和GUI部分都是最重要的性能瓶颈和优化点。 其次在移动开发场景中确实有众多的开发者对JavaScript有需求。在google上搜索”embed javascript engine ios”可以得到大量的实践和博文。 再次苹果已经在mac上得到很不错的实践和反响。引入JavaScriptCore即扩大了SDK能力又讨好了开发者何乐不为呢。 3、引入JavaScriptCore到底包括了哪些能力呢 a、Objective-C – JavaScript 即在Objective-C语言环境里执行JavaScript代码段创建JavaScript变量及变量操作等等 b、JavaScript – Objective-C即在JavaScript语言环境里调用Objective-C公开给JavaScript的方法 c、内存管理和线程封装主要是需要注意引用和线程使用冲突 4、代码层具体应该怎么使用呢 a、执行JavaScript代码的方法首先引入JavaScriptCore.h然后通过JSContext创建JS运行环境再通过evaluateScript来执行结果 最后要访问执行结果的话需要注意数据类型的转换Objective-C和JS的对应关系主要如下 – (BOOL)toBool; – (double)toDouble; – (int32_t)toInt32; – (uint32_t)toUInt32; – (NSNumber *)toNumber; – (NSString *)toString; – (NSDate *)toDate; – (NSArray *)toArray; – (NSDictionary *)toDictionary; – (id)toObject; – (id)toObjectOfClass:(Class)expectedClass; b、调用JS的函数通过evaluateScript将脚本片段引入到上下文然后通过callWithArguments进行调用。 c、通过JS调用Objective-C的方法1–Blocks即function方式 通过在Objective-C的JS context直接定义函数那么在JS语言环境里可以直接使用 makeNSColor函数。 d、通过JS调用Objective-C的方法2–JSExport即object方式 通过在Objective-C中声明JSExport的数据类型可以直接在JS的语言环境里当作全局变量使用。 创建MyPoint类MyPoint类实现MyPointExports协议然后将MyPoint类的实例注入JS。 示例 MyPoint *point [[MyPoint alloc] init]; context[point] point; e、扩展系统已有类到JS 比如将Label的一个实例导出到JS让JS设置Label的text属性。 (1)首先实现一个协议将text属性Export          protocol MyLabelExportProtocol JSExport          property(nonatomic,copy)NSString *text;          end          (2)将此协议动态添加到UILabel的Class上          class_addProtocol([UILabelclass], protocol(MyLabelExportProtocol));          (3)将UILabel的一个实例添加至JS上下文:          [contextsetObject:label forKeyedSubscript:label];          (4)在JS中就可以通过text属性设置label的显示值了          label.text Label显示值; OK相信看到这你已经知道该怎么实现Objective-C和JavaScript的相互调用了。其实这里和在浏览器中的相互操作是类似的。那么使用过过程中也要注意引用的回收和避免循环引用等问题否则会导致内存泄露甚至程序崩溃。这里我就不赘述了。 5、JavaScriptCore怎么和UIWebView连接起来呢  JSContext *context [webviewvalueForKeyPath:documentView.webView.mainFrame.javaScriptContext]; 6、JavaScriptCore可以带来了哪些实战应用呢 1、对于类Titanium的应用绝对是一大利好。Titanium就是通过内置JavaScript引擎操作Objective-C提供的能力以达到通过JavaScript来开发相对高性能的应用对比phonegap而言。内置JavaScriptCore可以使类Titanium框架体积得到明显减小。 2、对于动态更新类需求是非常有帮助的。JavaScript文件对于iOS7的应用相当于Lua对Cocos2d-x的意义即提供一种动态局部升级和更新的逻辑大大提高应用的可扩展性。 3、对手机内嵌web模式的新尝试点即通过nativeJS file的方式取代webview的方式。比如群创建页面通过手Q提供基础的组件能力通过加载JS文件来渲染生成创建群UI并且通过HTTP或TCP方式更新create.js即可实现更贴近原生的交互体验和web的灵活性。 转自http://www.webryan.net/2013/10/about-ios7-javascriptcore-framework/部分内容有更改内容有增加。
http://www.zqtcl.cn/news/164373/

相关文章:

  • 天津网站制作维护无锡网络推广外包
  • 国外中文网站排行娱乐新闻做的好的网站
  • 零食网站建设需求分析规划设计网址
  • 建立网站备案的法律依据wordpress 招商系统
  • 建设银行全球门户网站网站建设技能
  • 提供企业网站建设价格10元一年的虚拟主机
  • 塔城建设局网站电子商务网站建设方案目录
  • 网站容易被百度收录个人建购物网站怎么备案
  • 中文网站什么意思wordpress电脑访问不了
  • 杨家坪网站建设企业生产erp软件公司
  • 网站模块设计软件河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo
  • 陕西正天建设有限公司网站西安专业网页制作
  • 网站建设工作室介绍范文seo网站排名的软件
  • 上海网站建设-网建知识可编辑个人简历模板
  • 北京新鸿儒做的网站shopify做国内网站
  • 网站怎样做百度推广机关门户网站建设要求
  • 好看的网站后台模板沧州网站群
  • 深圳做网站排名公司哪家好哪些网站seo做的好
  • 国内网站建设推荐网站建设合同标准版
  • 哈尔滨网站制作费用企业成品网站模板
  • 网络广告网站怎么做北京海淀建设中路哪打疫苗
  • 房地产公司网站制作电影发布网站模板
  • 如何利用开源代码做网站网站本科
  • 公司是做小程序还是做网站宜宾住房与城乡建设部网站
  • 做网站哪个公司最社区问答网站开发
  • 网站引量方法网站建设推广页
  • 书店网站的建设网络营销方法有哪些
  • 深圳网站优化软件顺企网怎么样
  • 做网站的需要什么要求中国五百强企业排名表
  • 网络营销 企业网站外贸响应式网站建设