当前位置: 移动技术网 > IT编程>网页制作>CSS > Native.js技术简介及个人总结

Native.js技术简介及个人总结

2018年09月30日  | 移动技术网IT编程  | 我要评论

    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”)

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网