IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Uniapp和原生aar混合使用初体验 -> 正文阅读

[移动开发]Uniapp和原生aar混合使用初体验

一、编写原生代码,获取aar包,本例直接使用官方demo

1.首先下载官方demo:Android 离线SDK - 正式版
在这里插入图片描述
选择百度网盘,下载官方资料,解压后如下图
在这里插入图片描述
2.使用Android studio 打开UniPlugin-Hello-AS工程,该工程可以演示UNIAPP如何调用原生api
在这里插入图片描述
此处是我把资料中的汉字目录名称改为uniapp了

3.生成aar包:打开右侧工具栏:gralde,找到需要生成aar的library模块,打开task->other,双击运行assembleRelease,然后就生成了aar包,如下图中的步骤3
在这里插入图片描述
前期的准备工作就算完成

二、创建UNIAPP工程,本例直接使用官方工程,目的是熟悉混合交互流程

1.直接导入UNIAPP工程,打开HBuilderX,步骤如下,导入本地文件,即刚才下载的官方资料中的UniPlugin-Hello-AS\uniapp\unipluginDemo
在这里插入图片描述
在这里插入图片描述
2.参照官方说明:需要创建插件目录
在这里插入图片描述
testc为一级目录,目录名为自定义,android为二级目录,固定目录名;package.json为一级目录下的配置文件,需要配置插件的相关参数,用于,下一步的工程识别导入
package.json文件内容如下

{
    "name": "测试插件",
    "id": "testc",
    "version": "1.0.0",
    "description": "测试插件",
    "_dp_type":"nativeplugin",
    "_dp_nativeplugin":{
        "android": {
            "plugins": [
                {
                    "type": "component",
                    "name": "TestText",
                    "class": "io.dcloud.uniplugin.TestText"
                },
				{
				    "type": "module",
				    "name": "TestModule",
				    "class": "io.dcloud.uniplugin.TestModule"
				},
				{
				    "type": "module",
				    "name": "RichAlertModule",
				    "class": "io.dcloud.uniplugin.RichAlertModule"
				}
            ],
            "integrateType": "aar"
        }
    }
}

相关参数解析参考官网

3.至此准备工作完成,尝试运行uniapp工程:运行->运行到手机或者模拟器,没有意外的话,会顺利运行
在这里插入图片描述
但是你会发现点击没有反应
在这里插入图片描述
打印报错:

[JS Framework] 当前运行的基座不包含原生插件[TestModule],请在manifest中配置该插件,重新制作
包括该原生插件的自定义运行基座
16:09:19.330 TypeError: Cannot read property 'testAsyncFunc' of undefined
16:09:21.787 TypeError: Cannot read property 'testSyncFunc' of undefined
16:09:22.378 TypeError: Cannot read property 'gotoNativePage' of undefined

原来还差一些配置,走起

4.配置manifest:选择添加插件,选择本地插件选择:1->2->3->4->5,over
在这里插入图片描述
5.最后一项配置:配置自定义运行基座,这个词是官方说的,不明所以然,不理解,点击运行,运行->运行到手机或者模拟器->制作自定义调试基座
在这里插入图片描述
在这里插入图片描述
有二个选项可以修改,证书和打包选项,目前因为是测试demo,可以直接选择使用云端证书,打包使用传统打包,如果后期开发的话,就需要使用自由证书可以选择安心打包(本地打包)
点击打包,如果报错,则根据错误修改,列如,过度索取权限,那么就去mainfest中去把该权限勾选取消即可;如果打包失败,则多试几次,云打包总是那么不靠谱,第一次就没用成功,又试了一次就OK,一脸懵逼。

5.再次运行,运行->运行到手机或者模拟器->运行基座,勾选自定义调试基座
在这里插入图片描述
此时,再次执行
在这里插入图片描述
evrything is ok!

这个时候再去点击发现,已经可以调用aar的方法了,至此完成uniapp调用android原生方法的整个流程,实现了Uniapp中调用android原生方法。

本文主要是用于初次使用uniapp的开发者,了解uniapp调用android原生方法的流程,跑通一个demo,提高自信,避免因为混乱的文档和demo的各种报错,导致的暴躁和失去信心,因为我也因为这个感到暴躁过,对初次接触UNIAPP的太不友好了。。。。。

参考资料(感谢前辈们的分享)
1.uniapp开发android原生插件(一):新建插件
2.uniapp开发android原生插件(二):引入依赖、开发插件
3.uniapp开发android原生插件(三):uniapp集成aar插件
4.uniapp开发android原生插件(四):自定义基座运行

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:19:35  更:2022-04-06 23:19:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:38:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码