关于Uniapp的Android自定义基座使用

文章目录

前面也使用过几次,但是没有系统地进行记录,这次做一个记录,以及当作一个指引
下面的都是基于Android个人的理解或者记录,有错误或者出入,谢谢指正

放在前面

只要需要制作自定义基座,不管是离线的还是云打包的,第一步一定要把应用在平台的信息填写申请,获取到这些信息,包括appid,包名,签名,dcloud_appkey等等

只要做自定义基座,一定要先获取这些信息

只要做自定义基座,一定要先获取这些信息

只要做自定义基座,一定要先获取这些信息

不然后面做的磕磕绊绊,全是坑

Uniapp,基座

首先,uniapp运行到浏览器不再解释,基本纯uniapp的功能

基座:就是uniapp运行到手机的一个容器,本质是一个apk

标准基座:选择运行到手机基座,选择标准基座的时候,会生成一个没有签名,包名信息的基础可运行的apk容器,这个只是让你的应用可以运行到手机上看到效果

自定义基座:很多时候当需要调用一些原生功能,就需要做自定义基座了

自定义基座

这里先不讲离线基座,先说编译器的制作自定义基座

一般,当我们需要原生功能的时候,需要做一个原生插件,再来制作自定义基座

制作和使用原生插件

文章可以参考这里

我们制作了原生的插件,配置了相关信息,再填写应用相关的信息,直接使用HBuilderX制作自定义基座,这时候制作的基座就包含了原生插件的功能。

为什么?因为我们虽然只是提交了应用的包名等信息,但是制作基座的时候,编译器应该还读取了项目相关的文件和信息,读到了aar文件和配置,打包了进去【以上为我的猜测】

至此,我们可以调用到原生功能,且运行到手机上了

使用HBuilderX制作自定义基座官方文档

离线自定义基座

这个顾名思义,就是与云打包区分开来

云打包比较耗时,排队,且无法调试原生代码,查看原生日志。

如果需要这些需求,深度进行一下开发,就需要进行离线自定义基座

基座源码与Android Studio

既然是离线的,就要自己编写源码,使用Android Studio进行打包apk,再放入项目中使用

这部分参考官方文档

请仔细查看文档,下载对应的SDK,就获取到了官方的基座模板源码

至于使用Android打包apk,可以继续参考上面的官方文档,这里不赘述

重点,修改源码

这里就用到最前面强调要获取的信息

准备工作

除了前面强调获取的信息,这里还需要uniapp打包出一个www的资源包

打包方法,使用HBuilderX

生成本地app资源

修改模板项目

可参考文章

就以UniPlugin-Hello-AS举例

lib包

一般的,这些就够了,有时需要加一个调试包

参考文章

放置www资源

这一步要有,否则打包出的基座,不知道打开哪里的页面,可以说基座与这个资源是强绑定,且需要匹配的

即使其他配置正确,这个www资源不匹配,基座运行成功后会停留在启动页面,无法进入项目页面

替换掉模板的www资源就可以,位置如下

修改dcloud_control文件

打开这个位置的dcloud_control文件

保证这里的完全一致:__UNI__xxxxxx

在manifest中添加dcloud_appkey

一定要有,在application标签中,添加

这个value就是你在dcloud平台上获取到的

这个Android后面的,就是所需要的key

build.gradle中配置包名和签名

这个文件中的这两个字段,基本是一致的,都是在平台上申请的包名

这些信息都要与在平台上获取的保持一致,否则基座运行会报错

我自己遇到的问题:

在5.26版本中,还需要在build.gradle中引入一个库,否则会报错

implementation 'net.lingala.zip4j:zip4j:2.11.5'

到这里基本可以了。

打包apk

这个简单说一下

这样我们就有了自定义的apk

将apk用于uniapp项目

将apk放置在这个目录下,没有目录就自己创建 unpackage/debug/android_debug.apk

注意这里apk的名称必须是这个,否则运行到自定义基座的时候,会找不到

最后运行

这里不再说了

基座与uni强绑定,必须各个信息一致,否则就是各种报错和坑

基座运行

此时的基座,运行的是h5的逻辑,lib包中是

如果需要的是打开小程序,那么lib包中的就是

两者不能共存,会冲突

一般情况下,会用第一个,看需求吧

相关推荐
野生的码农16 小时前
能工智人,40 大寿,尚能班否?
android·ai编程
事圆则缓17 小时前
Android 串口通信:从 /dev/ttyS1到协议帧
android
java1234_小锋17 小时前
【技术专题】CSS3 网页技术 - CSS3 基础样式
android·前端·css3
tongyiixiaohuang1 天前
WMS已发货状态反写金蝶云星空:单策略实战教程
android
好的佩奇1 天前
Dart 之类修饰符
android·flutter·dart
alexhilton1 天前
用Konsist与Lint强制执行设计系统契约
android·kotlin·android jetpack
北京自在科技1 天前
谷歌安卓 Gemini 迎来界面改版,Find Hub 接入 Gemini 支持物品记忆查找
android·安卓
YB13751 天前
Jetpack Compose 动画Modifier.animateItem()
android
2401_885885041 天前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
收纳过往1 天前
数据库加索引的时机:慢查询日志说话
android·开发语言·数据库·python·低代码·rxjava