您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

uni-app 混合开发

混合开发是我们学习 框架时候的难点,有些仅仅使用 框架是实现不了的,比如:扫码、地图等。

虽然 框架中了这些,但是的(比如 API的扫码界面)没办法有效的,这时就需要用到 App 的原生控件来进行组合开发,这个开发形式就是 混合开发。

当然混合开发的含义不仅仅是这些,我们在下面会给大家详细讲到。

在学习混合开发之前,我们先来了解一下混合开发的含义,帮助大家更好的理解。

原生开发一般是指用原生语言进行开发,原生开发语言就是官方提供的开发语言,比如 IOS 是利用 Objective-C 和 Xcode 进行开发、是用原生语言和微信开发者工具进行开发。

混合开发是指开发项目应用时,为了提高运行效率或者开发效率,将各种开发技术进行混合应用的开发形式。

混合开发将各种开发方式取长补短,虽然比原生开发更难上手,但是架不住开发效率和运行效率的优势,现在比较大型的应用项目都会用混合开发来进行项目开发。

的混合开发主要是为了实现一些 框架无法实现的,或者扩展接入一些第三方的 SDK。

有过开发经验的小伙伴看到版本问题应该非常感同深受吧,经常会冷不丁的出现版本不兼容的问题。只要出现版本问题,重新布置开发环境是常有的事情。

而原生开发受到版本问题限制会比较小,官方的和开发工具都是定时更新,兼容性、安全性、维护性也会更高一些。

而原生开发普遍存在着开发时间长、效率低、成本高的问题。相比 ,适用性也比较差,一款原生的 App,不同平台上面发布同样的项目,需要开发几套不同的,这样对我们开发的限制也很大。

采用混合开发,我们可以采取各开发技术的优点,取长补短,可以提高的运行效率,扩展性上也会更好一些。

混合开发是缺点就是对开发人员技术要求比较高,需要花更多时间熟悉。并且因为涉及到多种开发方式,维护会更加麻烦一些,版本兼容问题也会比较多。

要使用 和原生 App 进行混合开发之前,要先确认要用 还是原生 App 作为主体。

如果我们主体采用 进行开发,只是部分的实现使用原生开发,这样可以找一些原生项目的用来配合开发。目前更多项目是使用原生扩展的方式来进行开发的。

这样实现就不只是通过 框架来实现的了,而是通过原生 API 实现的, 只是负责一下。

这里需要注意的是,如果想要将项目离线打包,就不应该使用原生 SDK,而应该使用 App 离线 SDK。

App 离线打包 SDK,是把 App 运行环境(runtime)封装为原生开发接口,开发者可以在自己的 Android 及 iOS 原生开发环境配置工程使用。参考资料:

接下来我们举个扫码的例子,看看如何在 中如何扩展 5+ 的原生界面控件。在 开发中,平台其实给我们提供的扫码 API,但是并不能满足我们所有扫码的需求,比如想要自己扫码框的颜色。

实例:

//   中的扫码直接 plus API就可以了,而扩展5+的原生界面控件要等 plusready 后再 plus API。

var plusReady = function (callback) {
    if (window.plus && window.plus.isReady) {
        callback();
    } else {
        document.addEventListener('plusready', function () {
            callback();
        }, false);
    }
};

//创建 Barcode 实例对象,可以扫码框的位置大小和颜色
var barcode = plus.barcode.create('barcode', options.types, options.styles);  

如果主体采用原生 App ,只有部分需要通过 实现,这样可以在原生 App 里集成 uni 的 SDK,也就是原生 SDK。

uni SDK,是为原生 App 打造的可运行基于 开发的前端项目的框架,从而帮助原生App的能力。参考资料:

主体采用原生 App ,也可以直接 编译为 H5 。

和原生混合开发问题 官网已经描述的很清楚了,我们直接查看官网资料就可以。

参考资料:

混合开发在我们学习初期一般是接触不到的,但是要进阶开发大型项目基本是逃不过的,所以混合开发的还是需要我们来仔细了解并掌握。本小节需要我们掌握的重点如下:


联系我
置顶