uniapp Android 原生插件开发(Module 扩展为例·2022)(二)

简介: uniapp Android 原生插件开发(Module 扩展为例·2022)

插件项目集成uniapp项目调试


插件引入


使用uni.requireNativePlugin('插件名')方法调用插件,如下:

image.png

插件方法调用


调用插件中的sayHi方法,利用回调函数获取返回值,具体如下:

image.png

相关代码


相关uniapp页面代码如下:

<template>
  <view>
    <view style="width:100vw;text-align: center; font-weight: bold; padding: 15px 0;">插件调试</view>
    <view style="padding: 15px 30px;">返回信息:{{ reply }}</view>
    <view style="padding: 15px 30px;">原始数据:{{ msg }}</view>
  </view>
</template>
<script>
  const plugin = uni.requireNativePlugin('test')
  export default {
    data() {
      return {
        reply: "",
        msg: "",
      }
    },
    onLoad() {
      let that = this
      plugin.sayHi("lauwen", function (res) {
        that.msg = JSON.stringify(res)
        that.reply = res.re
      })
    },
    methods: {
    }
  }
</script>
<style>
  .content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  .logo {
    height: 200rpx;
    width: 200rpx;
    margin-top: 200rpx;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50rpx;
  }
  .text-area {
    display: flex;
    justify-content: center;
  }
  .title {
    font-size: 36rpx;
    color: #8f8f94;
  }
</style>

生成本地打包资源


完成相关代码编写后,需要生成uniapp本地打包资源,生成之后控制台会显示相关路径,如下:

41dacb67f71f46538c23691db77e023f.png

复制打包资源到插件项目


将生成的打包资源复制到插件项目的app\src\main\assets\apps目录下

image.png

配置uniapp的appid


在插件项目app\src\main\assets\data目录下的dcloud_control.xml文件中配置uniapp的appid,具体如下:

image.png

运行调试


运行


在Android Studio中运行项目,如下

883612c486854f11bc04e7b035da6cb7.png

运行结果


运行结果如下,成功输出插件预置信息:

176cb83bdf684a29ac86a7cc2f0df4f8.jpeg

uniapp项目引入原生插件


以上介绍了插件开发过程中,集成uniapp项目进行调试的方法;插件开发完成后,需要将原生插件引入uniapp项目中才可以使用。

打包插件


SDK版本统一


插件包、APP以及uniapp项目的androidSDK版本应该统一一下,避免后续编译打包出错,如图:

8658e95623c743d4b758413b82463bb5.png

开始编译


打开Android Studio,在插件项目中,打开右上角Gradle栏目,选择插件开发项目,选择插件打开,依次点开Tasks-other,然后双击assembleRelease即可进行插件编译,如图:

ca928b6b5cc74f37b6eca841523ec76e.png

获取插件


编译成功后,就可以在插件目录的build/outputs/arr目录下找到编译好的插件

b4b5fe02a01e46b1adfe20eab0713fd0.png

引入插件


创建目录


在uniapp项目中创建nativeplugins目录,然后根据插件名创建插件目录,再在其下一级创建插件相应系统目录,然后将插件复制到该目录,如图:

image.png

创建插件包配置文件


在包目录下创建package.json包信息文件,用于配置包信息,具体配置如下:

  • name 和 id建议与插件名统一
  • plugins中的配置与插件配置-注册插件步骤中所填一样
  • dependencies:如果原生插件引入了第三方SDK,需要在此参数中配置,具体可以参考相关官方文档dependencies
{
    "name": "test",
    "id": "test",
    "version": "0.0.2",
    "description": "测试插件流程",
    "_dp_type":"nativeplugin",
    "_dp_nativeplugin":{
        "android": {
            "plugins": [
                {
                    "type": "module",
                    "name": "test",
                    "class": "com.ss.test.test"
                }
            ],
      "integrateType": "aar",
            "parameters": {
            },
            "dependencies": []
        }
    }
}

image.png

引入插件


在uniapp项目的manifest.json文件中添加配置好的插件,至此引入完成,如图:

d97dacc5b6374e46a99edb7fbd2c9007.png

打包自定义基座


新建基座打包


如图,依次点击三者进行自定义基座打包配置

image.png

基座打包配置


如图三个输入框,分别填入前面在uniapp后台获取的证书以及相关信息,然后执行打包就好

14977ba8903b4786906c6ee1f7bb757c.png

基座运行测试


选择运行基座


运行基座类型选择自定义基座

image.png

运行自定义基座


基座打包成功后,运行自定义基座到手机测试

9c1edb68965942dfa927b98b8f56c055.png

运行结果


如图,与插件调试过程中一样,输出正常

b2f04173ad294b41913b7779680b354b.jpeg

其它


jniLibs包引入


一般jniLibs结构


image.png

插件引入jniLibs库


把相关包放到插件libs目录下

image.png

添加jniLibs库


右键包中.jar文件,选择Add As Library,,然后选中当前插件包,点击OK添加就好

14a07a17cd974f648a2aae2db7fd7d19.png

配置插件包build.gradle


经过上一步的添加动作,jar文件已经自动引入了,如图中1标所示;然后需要将2标的配置添加进去,点击同步就好,然后就可以正常使用包了

2dab4c58ae4a4ddca80442ac109d1c9d.png

参考



目录
相关文章
|
19天前
|
设计模式 开发框架 前端开发
基于SqlSugar的开发框架循序渐进介绍(20)-- 在基于UniApp+Vue的移动端实现多条件查询的处理
基于SqlSugar的开发框架循序渐进介绍(20)-- 在基于UniApp+Vue的移动端实现多条件查询的处理
|
19天前
|
开发框架 移动开发 前端开发
基于SqlSugar的开发框架循序渐进介绍(19)-- 基于UniApp+Vue的移动前端的功能介绍
基于SqlSugar的开发框架循序渐进介绍(19)-- 基于UniApp+Vue的移动前端的功能介绍
|
6天前
uniApp——调整uniApp插件市场上的echarts插件
uniApp——调整uniApp插件市场上的echarts插件
6 0
|
1月前
uniapp 打包成 apk(原生APP-云打包)免费
uniapp 打包成 apk(原生APP-云打包)免费
71 1
|
1月前
|
小程序 开发者
uniapp实战 —— 开发微信小程序的调试技巧
uniapp实战 —— 开发微信小程序的调试技巧
73 1
|
2月前
|
监控 数据管理 Java
智慧城管源码,基于微服务+java+springboot+vue+uniapp开发的城管综合执法系统源码
智慧城管执法系统利用微服务和Java技术提升城市管理水平,涵盖事件处理、投诉、处罚等功能,包含PC和APP源码。系统支持执法APP,便于领导随时随地审批,具备文书模板、地图定位、法规查询等功能。此外,执法办案系统通过监控视频分析事件,实现案件全程闭环管理,包括组织、案件、信用和执法队伍管理,以及法规库等基础支撑。系统旨在优化流程,提高数据管理和效率。
智慧城管源码,基于微服务+java+springboot+vue+uniapp开发的城管综合执法系统源码
|
1月前
|
小程序 定位技术 API
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
uniapp 开发微信小程序 --【地图】打开地图选择位置,打开地图显示位置(可开启导航)
190 0
|
1月前
uniapp 安装插件 uView (多平台快速开发的UI框架)
uniapp 安装插件 uView (多平台快速开发的UI框架)
55 0
|
2月前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的智慧旅游平台开发微信小程序的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的智慧旅游平台开发微信小程序的详细设计和实现
49 8