Native.js技术简介及个人总结
native.js技术简介+总结收集(个人观点)
native.js技术,简称njs,是一种将手机操作的原生对象转义,映射为js对象,在js里编写原生代码的技术。
如果说node.js把js扩展到服务器世界,那么native.js则把js扩展到手机app的原生世界。
html/js/css全部语法只有7万多,而原生语法有几十万,native.js大幅提升了html5的能力。
njs突破了的功能限制,也不再需要像hybrid那样由原生语言开发插件才能补足浏览器欠缺的功能。
njs编写的代码,最终需要在hbuilder里打包发行为app安装包,或者在支持native.js技术的浏览器里运行
再次强调,native.js不是一个js库,不需要下载引入到页面的script中,也不像nodejs那样有单独的运行环境,native.js的运行环境是集成在5+runtime里的,使用hbuilder打包的app或流应用都可以直接使用native.js。
技术要求
由于njs是直接调用native api,需要对native api有一定了解,知道所需要的功能调用了哪些原生api,能看懂原生代码并参考原生代码修改为js代码。
否则只能直接copy别人写好的njs代码。
判断平台
native api具有平台依赖性,所以需要通过以下方式判断当前的运行平台:
function judgeplatform(){ switch ( plus.os.name ) { case "android": // android平台: plus.android.* break; case "ios": // ios平台: plus.ios.* break; default: // 其它平台 break; } }
其他转换
android原生应用的主activity对象 转为plus.android.runtimemainactivity()
android的主activity对象是启动应用时自动创建的,不是代码创建,此时通过plus.android.runtimemainactivity()方法获取该activity对象
objective-c方法冒号剔除
[pos setpositionx:(int)x y:(int)y;] 转为 pos.setpositionxy(x,y);
oc语法中方法的定义格式为:
“(返回值类型) 函数名: (参数1类型) 形参1 参数2名称: (参数2类型) 形参2”
方法的完整名称为: “函数名:参数2名称:”。
如:“(void)setpositionx:(int)x y:(int)y;”,方法的完整名称****为“setpositionx:y:”,调用时语法为:“[pos setpositionx:x y:y];”。
在js语法中函数名称不能包含“:”字符,所以oc对象的方法名映射成njs对象方法名时将其中的“:”字符自动删除,上面方法名映射为“setpositionxy”,在njs调用的语法为:“pos.setpositionxy(x,y);”。
文件路径转换
web开发里使用的image/1.png是该web工程的相对路径,而原生api中经常需要使用绝对路径,比如/sdcard/apptest/image/1.png,此时使用这个扩展方法来完成转换:plus.io.convertlocalfilesystemurl(“image/1.png”)
上一篇: Eclipse的汉化问题
下一篇: jQuery中each的用法