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

参考



目录
相关文章
|
7月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1327 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
7月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
980 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
7月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1078 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
847 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
8月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
795 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
7月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
360 0
|
8月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
1058 6
|
10月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
634 11
|
10月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
419 0
|
10月前
|
监控 Android开发 数据安全/隐私保护
批量发送短信的平台,安卓群发短信工具插件脚本,批量群发短信软件【autojs版】
这个Auto.js脚本实现了完整的批量短信发送功能,包含联系人管理、短信内容编辑、发送状态监控等功能