关于Uniapp的Android自定义基座使用
文章目录放在前面Uniapp基座自定义基座制作和使用原生插件离线自定义基座基座源码与Android Studio重点修改源码准备工作修改模板项目lib包放置www资源修改dcloud_control文件在manifest中添加dcloud_appkeybuild.gradle中配置包名和签名打包apk将apk用于uniapp项目最后运行基座运行前面也使用过几次但是没有系统地进行记录这次做一个记录以及当作一个指引下面的都是基于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后面的就是所需要的keybuild.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强绑定必须各个信息一致否则就是各种报错和坑还有一点如果你只是用原生插件那么需要将原生插件打包成aar给uni项目使用但是这里是自定义基座如果你又有原生插件直接引入到基座中那么就不需要打包aar了直接把基座的apk给uni项目使用就可以了因为它已经引入了原生插件的功能基座运行此时的基座运行的是h5的逻辑lib包中是如果需要的是打开小程序那么lib包中的就是两者不能共存会冲突一般情况下会用第一个看需求吧