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

uni-app 原生插件开发

上一节我们在 混合开发中讲到,如果我们混合开发是以 框架为主,只是想扩展一些只有原生才有的,那么我们最好使用 原生来进行项目开发。

那如何开发 原生并引用呢?这一小节我们来详细讲讲。

了解 原生之前,我们先来看一下什么是。

在开发过程中,为了提高开发效率,我们会将块和一些组件进行封装,便于我们更好的复用。的作用和这个差不多,将单独抽离出来,将配置项等其他部分都配置好,就算是了。

比如我们常见的前端有轮播图、弹窗等,我们开发时需要用到轮播图的时候,就不需要去从头开始写轮播图的了,直接引用轮播图的就可以实现开发需求。

大家有没有发现,从项目环境搭建、框架搭建,再到填充、打包上线,我们的开发过程很像是在搭建房子。

就可以理解为搭建房子的一块块砖头,别人已经帮我们烧制好了,我们直接垒上去就可以。

我们进行,就是将自己写好的以及所需要的依赖按照一定的格式打包到市场,别的如果刚好需要用到这个,就可以直接下载使用,避免重复造轮子,提高了整个行业的效率。

原生就是用原生语言进行,对于 原生来说,原生语言 android 或者 ios 。

我们使用 android、 ios 开发的,可以在 框架中通过 vue ,这就是 原生了。

原生包含两种扩展模式:module 模式、component 模式,下面来讲讲这两种扩展方式的 原生是如何开发和的。

大部分都是属于 module 扩展模式,也叫能力扩展,是非可视控件。这种不提供界面,只提供相应的能力。比如计步器API,我们只计步器的能力,而不是计步的。

module扩展方式的,在 的 vue、nvue 都可以使用。

component 模式是原生UI控件扩展的,属于可视化的控件。component 模式的会提供界面。

比如某个地图厂商的 Map 组件,将地图组件插在中间,就需要把这个原生地图 SDK 封装为 Componet 模式。的时候与 vue 组件是差不多的,在 <template> 中写组件就可以了。

component 模式的只可以在 nvue 通过的方式进行使用。
官网上面关于原生的开发教程已经写得很清楚了,我们就不详细讲了,可以直接参考官网的教程。

官网原生教程

在开发完 原生之后,接下来我们来看一下如何在 框架中这些原生。

之前要在原生项目中先一下,具体位置在原生App 项目的 Module 根目录下,assets/dcloud_uniplugins.json中。在nativePlugins节点下要的 Module 或者 Component 。

实例:

{
  "nativePlugins": [
    {
      "plugins": [
        {
          "type": "module",
          "name": "ImoocModulePlugin",
          "class": "TestModulePlugin"
        }
      ]
    },
    {
      "plugins": [
        {
          "type": "component",
          "name": "ImoocComponentPlugin",
          "class": "TestComponentPlugin"
        }
      ]
    }
  ]}

要注意 name 的设置,这个很重要,我们在 框架中的时候,不管开发的时候用的什么名字,的时候,都要用 name 定义的名字来。下面我们来看看如何这些。

module 模式的是通过 uni.requireNativePlugin("") 来的。
实例:

test:function(){
    // 
    const myTest = uni.requireNativePlugin('ImoocModulePlugin')
    // 打印结果
    console.log("结果:" + myTest.content)
}

component 模式的与 vue 组件差不多,就是将写在 <template> 中就可以了。
实例:

@H_230_@@H_230_@<template>
  @H_230_@@H_230_@<view>
    @H_230_@@H_230_@<ImoocComponentPlugin style="width:;height:">@H_230_@@H_230_@</ImoocComponentPlugin>
  @H_230_@@H_230_@</view>
@H_230_@@H_230_@</template>

在 框架中有很多内置,我们开发有限这些来开发,效率最高,如果 框架中的内置不能满足开发需求,我们可以到市场寻找合适的来完善我们的项目,不过这样的可能不是免费的,也有下架以及更新导致项目不匹配的风险。

最后如果市场上找不到合适的,我们再来自己开发,自己开发原生组件需要花更多时间熟悉,当然扩展性和稳定性上也会更好一些。 本小节需要掌握的重点如下:


联系我
置顶