当前位置: 首页 > news >正文

浅谈uniapp中开发安卓原生插件

其实官方文档介绍的比较清楚而且详细,但是有时候他太墨迹,你一下子找不到自己想要的,所以我总结了一下开发的提纲,也是为了自己方便下次使用。

1.第一步,下载官方提供的Android的示例工程,然后倒入UniPlugin-Hello-AS工程请在App离线SDK中查找,之后Android studio,编译运行项目成功。

2.第二步,在项目下新建一个module,然后选择右侧的"Android library",填写好名称等信息之后,点击finish,这个module,就是我们日后要在uniapp里面用到的module。
在这里插入图片描述
3.第三步,在刚才新建的module的build.gradle文件里面,添加如下依赖,然后构建成功。
在这里插入图片描述
4.第四步,然后在module工程里面新建一个类,继承UniModule,编写你真正需要在uniapp里面要调用的业务代码,并注册插件,如下图

public class TestModule extends UniModule {@UniJSMethod(uiThread = true)public void testAsyanc(JSONObject options, UniJSCallback callback) {Log.e("TestModule", "testAsyncFunc--" + options);if (callback != null) {JSONObject data = new JSONObject();data.put("code", "success");callback.invoke(data);}}//run JS thread@UniJSMethod(uiThread = false)public JSONObject testSyncFunc() {JSONObject data = new JSONObject();data.put("code", "success");return data;}
}

此处注册的插件的"name",与插件的文件的名称保持一致,方便日后使用,"class"为日后调用的方法的文件的全类名。

在这里插入图片描述
5.第五步,点击Android studio工具的右侧的Gradle工具栏,将我们的module打包成arr文件,打包完成后的文件去module的build-outputs-arr文件夹里面去找。
在这里插入图片描述
6.第六步,打开uniapp的官方推荐开发工具HbuilderX,在项目的根目录,新建nativeplugins的文件夹,然后里面新建一个文件夹,名字和插件.arr的文件保持一致,然后在新建的文件夹里面新建android文件夹和一个叫package.json的文件,然后将刚才第五步打包生成的arr文件放入到新建的android文件夹中,然后在package.json的文件中配置插件,如下图,name可以随意起名,为了方便我就都起了一样的名字,id的名称一定和文件的名称一样,下面的plugins里面的配置和刚才Android studio里面的配置保持一致。
在这里插入图片描述
7.第七步,使用HbuildX开发工具,制定调试打包的基座(其实这里的打包基座就是将配置有原生插件的uniapp工程打包成一个Android 的apk安装包,然后运行到手机上,去调试.打包基座之前,要记得在项目的manifest文件里面配置项目的插件

在这里插入图片描述
在这里插入图片描述
8.第八步,制作完自定义基座之后,运行项目到Android App基座手机,然后去调试,就可以了!

在这里插入图片描述
在这里插入图片描述
完整项目附件:点此下载

http://www.lryc.cn/news/204210.html

相关文章:

  • 音频格式WAV
  • 《语音优先》智能语音技术驱动的交互界面设计与语音机器人设计(译者序)...
  • [SQL开发笔记]WHERE子句 : 用于提取满足指定条件的记录
  • 【微信小程序】6天精准入门(第5天:利用案例与后台的数据交互)附源码
  • 【Hydro】水文模型比较框架MARRMoT - 包含47个概念水文模型的Matlab代码
  • Android Studio(2022.3.1)设置阿里云源-新旧版本
  • SOLIDWORKS 2024新功能 3D CAD三维机械设计10大新功能
  • 第十三章:L2JMobius学习 – 玩家攻击怪物
  • Module not found: Error: Can‘t resolve ‘core-js/modules/es.promise.js‘
  • 09-React路由使用(React Router 6)
  • Linux上常用网络相关命令
  • contenteditable实现文本内容确认提示
  • vue2vue3--render函数(h)
  • 网络协议--动态选路协议
  • 30天精通Nodejs--第一天:入门指南
  • C# ref用法,实现引用传递(地址传递)
  • 微信小程序数据交互------WXS的使用
  • 【数据结构】String类对象的创建与字符串常量池的“神秘交易”
  • 搞个微信小程序002:个人信息
  • .obj模型文件(带材质和纹理)合并的基本思路
  • es : java 查询
  • MySQL MVCC机制探秘:数据一致性与并发处理的完美结合,助你成为数据库高手
  • 5分钟搞懂分布式可观测性
  • 桥梁结构健康监测系统落地方案
  • hive和presto的求数组长度函数区别及注意事项
  • Kotlin Lambda表达式与标准库中的高阶函数
  • 【JavaEE初阶】 CAS详解
  • Docker镜像制作
  • v-on 可以监听多个方法吗?
  • 【Docker】Docker Compose的使用