开发与使用Uniapp原生插件[UniComponent]

打印 上一主题 下一主题

主题 1770|帖子 1770|积分 5310

这里主要使用官方的Demo来做继续开发,因为只必要新建module就行了,不必要再新建项目和处置惩罚一些依赖标题
  准备情况



  • AndroidStudio AndroidStudio官网
  • JAVA情况 jdk1.8
  • Uniapp离线SDK 下载地址
  • HBuilderX HBuilderX官网
使用官方Demo开发组件插件

打开已经准备好的Uniapp离线SDK,找到UniPlugin-Hello-AS项目,
使用AndroidStudio打开项目,等候项目初始化竣事
   假如有别的第三方依赖需求,可以自行将.so|.jar文件复制到libs下,也可以使用implementation
  点击文件-新建-New Module...开始新建模块
   一定要点击文件新建,右击项目新建的不在项目根目次

选择Android Library,填入信息,点击完成

  找到build.gradle配置文件 [app的哦,不是模块的],在dependencies中引入你的模块implementation project(':myTest')

  1. implementation project(':myTest')
复制代码


另有模块的build.gradle的dependencies配置,根据官方的UniPlugin-Hello-AS项目的uniplugin_component项目配置直接复制就好了

竣事后Sync Now
编写插件类

在myText模块下新建文件TestComponent.java,文件继续UniComponent,你编写的是什么插件就引入什么View
包括两个固定方法
这里以ImageView为例,也就是Uniapp控制表现的图片,也可以是TextureView来实现各种视频的预览,原生实现比Uniapp更简单

新建两个测试方法,一个直接传参,一个通过标签传参
  1. // 通过直接传入文件路径来显示
  2. @UniJSMethod
  3. public void setImage(String path) {
  4.      File file = new File(path);
  5.      Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
  6.      getHostView().setImageBitmap(bitmap);
  7. }
  8. // 通过标签src="路径"来直接显示
  9. @UniComponentProp(name = "src")
  10. public void src(String path) {
  11.      File file = new File(path);
  12.      Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath());
  13.      getHostView().setImageBitmap(bitmap);
  14. }
复制代码
打包aar

通过Gradle控制台直接打包即可,新版AndroidStudio大概没有表现assembleRelease选项,这里通过
文件-Sync Project with Gradle Files
重新同步一下即可


编译竣事后,aar文件路径在插件目次\build\outputs\aar下
到这里原生组件的插件开发就竣事了,接下来必要将aar文件根据官方文档来配置到Uniapp项目中使用
Uniapp插件格式

官方插件包格式为:
  1. 插件目录[myText]
  2.         平台目录[android|ios]
  3.                 插件aar[myText.aar]
  4.         package.json
复制代码
在HBuildX中表现如下

   当然更建议使用小写,如:my-test,个人项目使用标题不大,官方上架有要求
注意:aar名称尽量与你的插件目次保持一致,或aar文件的名称前缀是你的插件目次名
  package.json

  1. {
  2.         "name": "测试插件",
  3.         "id": "myTest",
  4.         "version": "1.0",
  5.         "description": "测试插件1.0",
  6.         "_dp_type": "nativeplugin",
  7.         "_dp_nativeplugin": {
  8.                 "android": {
  9.                         "plugins": [{
  10.                                 "type": "component",
  11.                                 "name": "myTest",
  12.                                 "class": "com.uniapp.mytest.TestComponent"
  13.                         }],
  14.                         "integrateType": "aar",
  15.                         "minSdkVersion": 24,
  16.                         "abis": [
  17.                                 "armeabi-v7a"
  18.                         ]
  19.                 }
  20.         }
  21. }
复制代码

注意:


  • name与id必须保持一致
  • class必须是包名.类名[com.uniapp.mytest是包名,TestComponent是类名]
  • 这里演示的是component组件,所以type是component而不是module
  • 别的参数可以到官方文档参考
在你的Uniapp项目根目次新建nativeplugins文件夹,这是原生插件存放目次,然后将你的插件包放入nativeplugins文件夹内即可
使用插件

新建nvue页面[更建议nvue]
直接使用标签引入插件即可[module必要使用uni.requireNativePlugin哦,component不必要]
  1. <template>
  2.         <view>
  3.                 <myTest ref="myTest"></myTest>
  4.         </view>
  5. </template>
复制代码
调用方法使用


标签直接使用


自此Uniapp开发与使用component组件方法竣事

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表