uniapp开发android原生插件

一、下载原生开发SDK

           Android 离线SDK - 正式版 | uni小程序SDK (dcloud.net.cn)、

           https://nativesupport.dcloud.net.cn/AppDocs/download/android.html

          将开发uniappa原生android的插件解压到ben本地目录,目录结构如下:

          接下就可以使用 UniPlugin-Hello-AS这个工程制作原生插件

二、制作原生插件

1、androidstudio打开UniPlugin-Hello-AS

        调整好本地androidsdk和gradle环境进行下一步

2、创建一个library的module

3、配置gradle依赖

        将uniplugin_modle模块下的gradle依赖全部拷贝到新建的mylibrary的gradle中

    compileOnly fileTree(dir: 'libs', include: ['*.jar'])compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar'])compileOnly 'androidx.recyclerview:recyclerview:1.0.0'compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'compileOnly 'androidx.appcompat:appcompat:1.0.0'implementation 'com.alibaba:fastjson:1.2.83'implementation 'com.facebook.fresco:fresco:1.13.0'

4、编写android代码

/*** 提供给uni的js调用的类需要继承  io.dcloud.feature.uniapp.common.UniModule
*  这里定义的java类名就是后面uniapp调用的插件名称
*/
public class MyLibraryPlugin  extends UniModule {/*** 暴露一个给js调用的方法* UniJSMethod注解标记是否需要主线程调用* @return*/@UniJSMethod(uiThread = false)public   String  getTimeFromNative(){SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd  HH:mm:ss", Locale.CHINA);return  "get time from native " + sdf.format(new Date());}}

5、打包aar文件

         进入到工程的根目录,执行assembleRelease命令

 ./gradlew   mylibrary:assembleRelease

        在build->outputs->aar提取aar文件

      这样就生成了一个名为mylibrary-release.aar的插件

6、编写插件打包配置package.json

{  "name": "MyLibraryPlugin",  "id": "MyLibraryPlugin",  "version": "1.0",  "description": "uniapp原生android插件",  "_dp_type":"nativeplugin",  "_dp_nativeplugin":{    "android": {  "plugins": [  {  "type": "module","name": "SunMiUtilsService","class": "com.example.mylibrary.MyLibraryPlugin"}],   "integrateType": "aar",  "minSdkVersion": "21"  }  }  
}

       这样package.json文件就配置好了 

三、uniapp集成插件

 1、导入原生插件

        在uniapp项目目录下创建一个名为nativeplugins的文件夹,在nativeplugins目录下创建目录以插件名称MyLibraryPlugin命名,在MyLibraryPlugin插件目录下创建一个android目录,将mylibrary-release.aar插件拷贝进去,在android的统计目录中奖package.json文件拷贝进去,整体目录结构如下:



2、在manifest.json中配置插件

3、测试代码

methods: {clickNative(){const  libPlugin =  uni.requireNativePlugin("MyLibraryPlugin");uni.showModal({title:'提示',content: libPlugin.getTimeFromNative(),})},
}

         注意:新引入插件一定要重新对自定义基座进行打包,不然插件引入会失效

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/509002.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Linux 环境下安装 Kibana

目录 一、Kibana 是什么 二、在 Linux 环境下安装 Kibana 1、下载安装包 2、解压 3、修改 Kibana的配置文件 config/kibana.yml 4、启动 5、浏览器登录 Kibana 6、测试查询 一、Kibana 是什么 Kibana 是通向 Elastic 产品集的窗口。 它可以在 Elasticsearch 中对数据进…

学习408之数据结构--线性表-顺序表 学会动态顺序表的创建

线性表 线性表(inear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串等 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定…

IP地址定位技术能精确到街道级别吗?

IP地址定位技术可以精确到街道级别,但这并不是普遍情况。IP地址定位的精度受到多种因素的影响,包括IP地址库的准确性、网络延迟、地理位置数据的更新频率等。此外,大多数网络用户都是使用动态IP上网,这也会增加定位的难度。 IP地址…

wordpress外贸独立站

WordPress外贸电商主题 简洁实用的wordpress外贸电商主题,适合做外贸跨境的电商公司官网使用。 https://www.jianzhanpress.com/?p5025 华强北面3C数码WordPress外贸模板 电脑周边、3C数码产品行业的官方网站使用,用WordPress外贸模板快速搭建外贸网…

jetson nano——编译安装cmake(全局+图文)

目录 1.安装openssl2.源码编译安装OpenSSL3.编译安装cmake3.1卸载旧版本的cmake3.2.下载源码3.3解压3.4进入解压后的目录3.5配置路径3.5.1指定openssl路径3.5.2配置路径 3.6编译3.7安装3.8编辑环境变量3.9确定是否成功安装 系统:jetson-nano-jp451-sd-card-image ub…

[JavaWeb玩耍日记]HTML+CSS+JS快速使用

目录 一.标签 二.指定css 三.css选择器 四.超链接 五.视频与排版 六.布局测试 七.布局居中 八.表格 九.表单 十.表单项 十一.JS引入与输出 十二.JS变量,循环,函数 十三.Array与字符串方法 十四.自定义对象与JSON 十五.BOM对象 十六.获取…

安泰功率放大器的应用领域介绍

随着现代科技的快速发展,功率放大器已经成为各种电子设备中不可或缺的组成部分。它可以将低功率的信号放大为高功率的信号,使得信号能够更远地传输,更好地驱动各种负载。因此,在许多领域中,功率放大器都扮演着重要角色…

Achronix以创新FPGA技术推动智能汽车与先进出行创新

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司将参加由私募股权和风险投资公司Baird Capital举办的“Baird车技术…

Redis-基础篇

Redis是一个开源、高性能、内存键值存储数据库,由 Salvatore Sanfilippo(网名antirez)创建,并在BSD许可下发布。它不仅可以用作缓存系统来加速数据访问,还可以作为持久化的主数据存储系统或消息中间件使用。Redis因其数…

品牌与时间函数:在时间的长河中铸造品牌

品牌推广是一个与时间紧密相连的复杂过程。时间不仅是品牌推广的见证者,更是其推动者和塑造者。迅腾文化深刻理解品牌推广与时间之间的微妙关系,提出的“显”的原则,旨在通过巧妙的策略,使品牌在时间的流转中逐渐显现出其特别的魅…

windows下安装npm

windows下安装了多个node.js如何切换npm。 下载nvm 下载nvm地址:https://github.com/coreybutler/nvm-windows/releases 安装nvm 这个是nodejs的安装位置,如果没有nodejs文件夹就新建一个(后来发现他会自动生成一个快捷方式) 设置setting.txt 打开安装…

【漏洞复现】ShopXO任意文件读取漏洞

Nx01 产品简介 ShopXO是一套开源的企业级开源电子商务系统,包含PC、H5、微信小程序、支付宝小程序、百度小程序等多个终端,遵循Apache2开源协议发布,基于ThinkPHP5.1框架研发。该系统具有求实进取、创新专注、自主研发、国内领先企业级B2C电商…