前言
此方法为使用uniapp开发前端资源,然后继承进安卓原生项目,达到调用uniapp调用jar的效果。
基于Android Studio进行开发。
本人不懂安卓以及gradle,只是基于搜索引擎以及官方文档得出以下步骤,如果错误或改进之处,望告知。以下步骤亲测可用。
项目搭建
此处可以参考官方文档,说的很详细了
初始项目是通过对官方demo进行裁剪获得(个人尝试过新建项目,未遂)
- 下载官方demo
-
导入UniPlugin-Hello-AS项目
-
删除官方demo模块
官方模块总共有3个(uniplugin_component、uniplugin_module、uniplugin_richalert)
-
解除模块绑定关系
菜单File — Project Structure — Modules
-
删除模块代码以及uniapp示例工程源码
-
删除插件的注册
参考官方说明
清空dcloud_uniplugins.json文件中nativePlugins节点下所有内容
-
删除插件引用
app包下的build.gradle文件
“`groovy
// 删除这三块
implementation project(':uniplugin_component')
implementation project(':uniplugin_module')
implementation project(':uniplugin_richalert')
“` -
删除混淆文件多余配置
修改app包下proguard-rules.pro文件
删除末尾的
“`protobuf
-keep class uni.** {*;}
“`
uniapp插件开发
uniapp前端项目
-
使用Hbuilder X新建uniapp测试项目(Hbuilder下载地址)
类型选择uni-app 默认模板
-
index.vue新增测试按钮
<template> <view class="content"> <div> <button type="primary" @click="testSyncFunc">testSyncFunc</button> </div> </view> </template> <script> // 获取 module var testModule = uni.requireNativePlugin("TestModule") export default { onLoad() { }, methods: { testSyncFunc() { // 调用同步方法 var ret = testModule.testSyncFunc({ 'name': 'unimp', 'age': 1 }) } } } </script>
- 打包
菜单 发行 — 原生APP-本地打包 — 生成本地打包app资源
到控制台输出的导出路径中,找到resource目录下的文件夹(文件夹名字就是appid),后面有用
插件后端开发
-
新增Module
在Android Studio中,右击项目名称 — New — Module,选择Android Library
-
按照官方文档修改build.gradle以及新建UniModule(链接)
-
修改混淆文件
修改app包下proguard-rules.pro
dependencies标签里添加implementation project(‘:xxx’)
xxx就是第一步新建的Module的名字
-
引用插件
修改app包下的build.gradle
-
注册插件
dcloud_uniplugins.json文件中nativePlugins
配置
-
生成Android平台签名证书(链接)
-
生成uniapp离线打包key(参考链接)
Android包名在在app包下的AndroidManifest.xml中最前面可以找到,默认是com.HBuilder.UniPlugin
-
填写APPID
app包下的AndroidManifest.xml搜索android:value
-
配置安卓证书
app包下build.gradle → signingConfigs
将第一步生成的证书文件(.keystore、.jks)放到app目录下
-
插件调试
-
将uniapp前端项目打包生成的资源替换到app — src — main — assets — app 中
-
修改app — src — main — assets — data — dcloud_control.xml中的appid
最后
-
写了半天,还是没有说怎么调用jar包。原生安卓项目怎么用jar就怎么用。
-
运行项目进行测试吧