目录

一、准备工作(开发环境)

二、实操

1、使用Android studio开发工具打开UniPlugin-Hello-AS工程请在App离线SDK中查找 ​编辑

2、创建Andorid Libray名字为(mylibrary),名称可以自定义    ​编辑

3、复制代码到mylibrary下的build.gradle中

4、将避免混淆代码写入到consumer-rules.pro与proguard-rules.pro中

5、在mylibrary包下创建一个HelloWorld 类,如下图:

6、 打包arr包 ,步骤可以参考下面链接

7、.新建uniapp项目引入原生插件

8、在manifest文件中引入本地andorid插件

9、 云打包Andorid自定义基座包。

10、本地调试

三、插件开发需要注意的地方


一、准备工作(开发环境)

  • JAVA环境 jdk1.8
  • Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区
  • App离线SDK下载:请下载2.9.8+版本的android平台SDK
  • HBuilderX 下载地址:官方下载地址

这一部分就不做详细阐述

二、实操

下载离线SDK   地址:   简介 | uni小程序SDK

1、使用Android studio开发工具打开UniPlugin-Hello-AS工程请在App离线SDK中查找 

2、创建Andorid Libray名字为(mylibrary),名称可以自定义    

3、复制代码到mylibrary下的build.gradle中

//导入aar需要的配置
repositories {flatDir {dirs 'libs'}
}
dependencies {//必须添加的依赖compileOnly 'androidx.recyclerview:recyclerview:1.0.0'compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'compileOnly 'androidx.appcompat:appcompat:1.0.0'compileOnly 'com.alibaba:fastjson:1.1.46.android'compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
}

4、将避免混淆代码写入到consumer-rules.pro与proguard-rules.pro中

-keep public class * extends io.dcloud.feature.uniapp.common.UniModule{*;}

如图

5、在mylibrary包下创建一个HelloWorld 类,如下图:

package com.xiaoya.mylibrary;import android.widget.Toast;import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;public class HelloWorld extends UniModule {// 加法运算@UniJSMethod(uiThread = false)public void mathAdd(int a,int b, UniJSCallback callback) {callback.invoke(a + b);}// 原生toast提示@UniJSMethod(uiThread = false)public void showToast(String msg, UniJSCallback callback) {Toast.makeText(mWXSDKInstance.getContext(),msg,Toast.LENGTH_SHORT).show();callback.invoke(msg);}}

6、 打包arr包 ,步骤可以参考下面链接

新版Android studio 有可能不显示Gradle Task,可以参考下面链接第二部分。

AndroidStudio 打包 Android项目 成 aar - 简书

7、.新建uniapp项目引入原生插件

(1). 新建nativeplugins目录

(2). 新建插件目录Chen-HelloWorld,子文件夹android并将release.aar放入。

(3). 新建package.json文件文件描述并写入如下代码,  class格式为“包名+类名”。更多配置参考

8、在manifest文件中引入本地andorid插件

9、 云打包Andorid自定义基座包。

特别注意:

编译Android原生组件的时候最好使用minSdkVersion 19  否则会打包失败。

10、本地调试

<template><view class="content"><input type="number" v-model="a" /><input type="number" v-model="b" /><button type="default" @click="showtoast">showtoast</button><button type="default" @click="add">加法</button></view>
</template><script>// 引入插件let andoridModule = uni.requireNativePlugin('Chen-HelloWorld');export default {data() {return {a: 1,b: 2}},methods: {add(){andoridModule.mathAdd(this.a,this.b,(e)=>{andoridModule.showToast('A+B=' + e);});},showtoast(){andoridModule.showToast('hello world!',(e)=>{console.log('showToast reuslt:',e);});}}}
</script>
<style>.content { padding-top: 200rpx; }
</style>

三、插件开发需要注意的地方

插件主要分为两类扩展:

  • Module 扩展 非 UI 的特定功能.

  • Component 扩展 实现特别功能的 Native 控件.

参考

https://nativesupport.dcloud.net.cn/NativePlugin/course/android.html#

Uniapp Android原生插件开发_惊悚的毛毛虫的博客-CSDN博客_uniapp原生插件开发

uniapp安卓原生插件开发流程_AndroidLMY的博客-CSDN博客_uniapp 原生开发

另外:编译Android原生组件的时候最好使用   minSdkVersion 19 否则会打包失败。

记得申请下离线key

Uniapp关于 Android原生插件开发案例相关推荐

  1. Android原生插件开发-开发篇

    原创文档:Android原生插件开发-开发篇 · 语雀 官方文档:原生开发者支持 创建module 点击File=>New=>New Module 选择Android Library,输入 ...

  2. uniapp集成Android原生sdk

    最近公司有个项目,需要调用客户提供的sdk扫描rfid,项目又是用uni开发的,客户提供的sdk只有Java版本,我发现uni是提供集成原生sdk的,所以研究了一下怎么使用,并记录下来过程. 准备 S ...

  3. Android原生插件开发-证书jks篇

    原创地址:Android原生插件开发-证书jks篇 · 语雀 jks生成 下载Android Studio Download Android Studio & App Tools - Andr ...

  4. 记一次uni-app Android原生插件开发

    背景 项目使用到了RFID射频手持设备(PDA),用于读取羊只耳标功能. 原来有写过一个插件 https://ext.dcloud.net.cn/plugin?id=5246,新的设备与原来的不一样, ...

  5. uniapp 调用 android 原生sdk

    1.Android Studio 下载地址:Android Studio官网 OR Android Studio中文社区 2.HBuilderX 3.App离线SDK下载:最新android平台SDK ...

  6. 跨平台应用开发进阶(八) :uni-app 实现Android原生APP-云打包集成极光推送(JG-JPUSH)详细教程

    文章目录 一.前言 二.资源 三.集成 3.1 SDK 引入 3.2 代码集成 3.3 遇到的问题及解决方案 3.3.1 包大小限制 3.3.2 [JS Framework] 当前运行的基座不包含原生 ...

  7. 跨平台应用开发进阶(二十九) :uni-app 实现Android原生APP-云打包集成神策详细教程

    文章目录 一.前言 二.集成 2.1 集成 uni-app 插件 2.2 云端集成原生插件 2.3 离线集成 2.3.1 获取插件包 2.3.2 在 HBuilderX 中集成原生插件 2.4 集成结 ...

  8. uniapp调用android原生方法

    1.编写安卓端代码 public class ElitetycPluginTest extends StandardFeature {public void calcMyNameAddNum(IWeb ...

  9. uniApp如何与原生Android交互传递数据

    uniApp与Android原生插件互传数据 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微 ...

最新文章

  1. CodeIgniter2.0中sqlserver驱动返回受影响行数问题解决
  2. 织梦DedeCMS自定义表单限制IP24小时只能提交多少次
  3. pom文件内标签的讲解
  4. JQuery AJAX提交中文乱码的解决方案
  5. 分页查询插件PageHelper 5.x版本
  6. JSP根据状态动态改变数据表格按钮
  7. mysql5.6 二进制免编译安装
  8. python用户标识符条件_使用sum(if…)或条件语句操作两个数据集,这些语句没有hivehadooppython的公共标识符...
  9. ZH奶酪:Python中zip函数的使用方法
  10. 鬼使神差的给宝宝办了大米的卡
  11. linux查看运行的虚拟机,windows,linux,esxi系统判断当前主机是物理机还是虚拟机?查询主机序列号命令...
  12. hlgoj 1766 Cubing
  13. 二叉树线索化(C语言)
  14. android6.0获取通讯录权限
  15. C# 中的委托和事件[转自http://www.cnblogs.com/jimmyzhang/archive/2007/09/23/903360.html]
  16. Pulling is not possible because you have unmerged files.
  17. 用Python爬取购物节当天热门商品销量数据,看看大家喜欢什么
  18. java判断版本号大小,比较版本号大小
  19. Gazebo仿真平台模型搭建与修改
  20. Java工程师面试中,有些问题要这么答

热门文章

  1. 制作一个用户头像选择器仿 WeGame
  2. 设计模式——开闭原则
  3. H5,Audio音乐播放器(移动版)
  4. mysql geo_地理位置geo处理之mysql函数
  5. excel----检验
  6. 去你的Google Adsence
  7. 【原】拯救你的机械硬盘!
  8. CSS实例(一):漂亮的表格样式(使用CSS样式表控制表格样式)
  9. surging教学视频资源汇总
  10. 解决申请开发者office E5中无法发送手机验证码,reCaptcha加载失败