前言

此方法为使用uniapp开发前端资源,然后继承进安卓原生项目,达到调用uniapp调用jar的效果。

基于Android Studio进行开发。

本人不懂安卓以及gradle,只是基于搜索引擎以及官方文档得出以下步骤,如果错误或改进之处,望告知。以下步骤亲测可用。

项目搭建

此处可以参考官方文档,说的很详细了

初始项目是通过对官方demo进行裁剪获得(个人尝试过新建项目,未遂)

  1. 下载官方demo

  2. 导入UniPlugin-Hello-AS项目

  3. 删除官方demo模块

    官方模块总共有3个(uniplugin_component、uniplugin_module、uniplugin_richalert)

    • 解除模块绑定关系

      菜单File -- Project Structure -- Modules

    • 删除模块代码以及uniapp示例工程源码

    • 删除插件的注册

      参考官方说明

      清空dcloud_uniplugins.json文件中nativePlugins节点下所有内容

    • 删除插件引用

      app包下的build.gradle文件

      // 删除这三块
      implementation project(':uniplugin_component')
      implementation project(':uniplugin_module')
      implementation project(':uniplugin_richalert')
    • 删除混淆文件多余配置

      修改app包下proguard-rules.pro文件

      删除末尾的

      -keep class uni.** {*;}

uniapp插件开发

uniapp前端项目

  1. 使用Hbuilder X新建uniapp测试项目(Hbuilder下载地址

    类型选择uni-app 默认模板

  2. 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>
  3. 打包

    菜单 发行 -- 原生APP-本地打包 -- 生成本地打包app资源

    到控制台输出的导出路径中,找到resource目录下的文件夹(文件夹名字就是appid),后面有用

插件后端开发

  1. 新增Module

    在Android Studio中,右击项目名称 -- New -- Module,选择Android Library

  2. 按照官方文档修改build.gradle以及新建UniModule(链接

  3. 修改混淆文件

    修改app包下proguard-rules.pro

    dependencies标签里添加implementation project(':xxx')

    xxx就是第一步新建的Module的名字

  4. 引用插件

    修改app包下的build.gradle

  5. 注册插件

    参考文档

    dcloud_uniplugins.json文件中nativePlugins

配置

  1. 生成Android平台签名证书(链接

  2. 生成uniapp离线打包key(参考链接

    Android包名在在app包下的AndroidManifest.xml中最前面可以找到,默认是com.HBuilder.UniPlugin

  3. 填写APPID

    app包下的AndroidManifest.xml搜索android:value

  4. 配置安卓证书

    app包下build.gradle → signingConfigs

    将第一步生成的证书文件(.keystore、.jks)放到app目录下

  5. 插件调试

    参考文档链接

    • 将uniapp前端项目打包生成的资源替换到app -- src -- main -- assets -- app 中

    • 修改app -- src -- main -- assets -- data -- dcloud_control.xml中的appid

最后

  1. 写了半天,还是没有说怎么调用jar包。原生安卓项目怎么用jar就怎么用。

  2. 运行项目进行测试吧

uniapp调用jar的更多相关文章

  1. Unity调用Android的两个方式:其一、调用jar包

    unity在Android端开发的时候,免不了要调用Java:Unity可以通过两种方式来调用Android:一是调用jar.二是调用aar. 这篇文章主要讲解怎么从无到有的生成一个jar包,然后un ...

  2. Loadrunner11.0调用Jar包

    又好几天不写东西了,是不是意味着最近没有大的进步,时时敲打自己. 今天把loadrunner如何调用Jar包搞定了,现在把配置的过程中需要注意的东西写下来,分享给小伙伴儿,减少他们在前行路上的弯路. ...

  3. Python 的 JPype 模块调用 Jar 包

    背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接口时需要依赖Python:而大多数公司的扩展工具包使 ...

  4. html实现调用jar包

    整体思路:html引用URL protocol-本地注册表key,key对应某一c#写的exe可执行文件,由exe可执行文件调用cmd,cmd执行jar包. 1.添加注册表: Windows Regi ...

  5. winform调用jar包

    因为工作需要,需要做一个数据上传的程序,客户规定的是:数据接口采用http连接,采用JSON-RPC轻量级远程调用协议.所以决定用winform做一个管理界面(其中还包括其他的功能),java完成数据 ...

  6. (转载)Python 的 JPype 模块调用 Jar 包

    Python 的 JPype 模块调用 Jar 包 背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接 ...

  7. Python调用jar包中的方法

    [本文出自天外归云的博客园] 需求 最近在后台项目代码中一段自定义的AES加解密的程序在平时的测试工作中应用频繁.因为写脚本经常会需要使用,而经过各种尝试,比如jpype等,都不尽如人意.最后转换思路 ...

  8. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

  9. NodeJS调用jar包

    我们在实际的生产.开发实践中,其实要和许多第三方服务商进行打交道,这其中包括使用他们提供的批量与联机服务,但与别的互联网企业不大相同的是,银行作为传统企业,其一贯重视安全性,许多在互联网企业看似理所当 ...

随机推荐

  1. vue实例vm的方法

    import wbMessage from './wb-message' let Constructor = Vue.extend(wbMessage) let vm = new Constructo ...

  2. SpringBoot如何优雅关闭(SpringBoot2.3&Spring Boot2.2)

    SpringBoot如何优雅关闭(SpringBoot2.3&Spring Boot2.2) 优雅停止&暴力停止 暴力停止:像日常开发过程中,测试区或者本地开发时,我们并不会考虑项目关 ...

  3. 1903021121—刘明伟—Java第四周作业—java分支语句学习

    项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 第四周作业 要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果). 扩展阅 ...

  4. 思科,华为l2tp组网,家庭宽带,公司内网数据分离

    拓扑 简介 办公网使用专线接入,拥有固定IP地址,网络出口使用防火墙做NAT,下联交换机接入服务器,办公电脑等,旁挂思科路由器做L2TP LNS 家庭宽带使用ADSL线路,华为路由器做拨号设备与DHC ...

  5. 数组——JavaSE基础

    数组 数组初始化 public class ArrayDemo02 { public static void main(String[] args) { // 静态初始化 int[] a = {1, ...

  6. 《HALCON数字图像处理》第一、二章笔记

    目录 第一章 绪论 1.1 图像和图像处理 1.1.1 图像 1.1.2 数字图像 1.1.3 图像处理及其发展过程 1.2 数字图像处理的步骤和方法 1.3 数字图像处理系统的硬件组成 1.4 数字 ...

  7. 在 Traefik Proxy 2.5 中使用/开发私有插件(Traefik 官方博客)

    Traefik Proxy 在设计上是一个模块化路由器,允许您将中间件放入您的路由中,并在请求到达预期的后端服务目的地之前对其进行修改. Traefik 内置了许多这样的中间件,还允许您以插件的形式加 ...

  8. 即时通讯IM,是时代进步的逆流?看看JNPF怎么说

    JNPF快速开发平台所包含的第四个重要的开发框架是即时通讯沟通工具.即时沟通工具的目的是让各大企事业单位在各种业务工作流程环境下实现实时无缝协同办公,打破信息数据孤岛,形成高效的层级流转审批和各流程环 ...

  9. 使用VMware安装Ubuntu虚拟机

    一.下载安装VM软件 这一步跳过,因为网上都能找到下载地址,下载后一步一步的安装即可,网上也有很多下载地址,这里提供一个Windows的下载链接. 链接: https://pan.baidu.com/ ...

  10. Centos7 中安装Elasticsearch

    1.下载安装包 1.1 下载elasticsearch 7.13.3 curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/e ...