原创文档:Android原生插件开发-开发篇 · 语雀

官方文档:原生开发者支持

创建module

  1. 点击File=>New=>New Module
  2. 选择Android Library,输入module 名称与包名 ;假设:uniplugin_test

3.初始化完成,就代表uniplugin_test 创建好了

创建类

开发目录主要在这个项目下:

  1. 右击com.wql.uniplugin_test目录=>New=>Java Class

2.配置module工程依赖:build.gradle

//导入aar需要的配置
repositories {flatDir {dirs 'libs'}
}
dependencies {//必须添加的依赖compileOnly 'androidx.recyclerview:recyclerview:1.0.0'compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'compileOnly 'androidx.appcompat:appcompat:1.0.0'compileOnly 'com.alibaba:fastjson:1.1.46.android'compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
}

3.配置App build.gradle,引入插件

4.写一个testAsyncFunc 方法

package com.wql.uniplugin_test;import android.util.Log;import com.alibaba.fastjson.JSONObject;import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;public class TestModule extends UniModule {//run ui thread@UniJSMethod(uiThread = true)public void testAsyncFunc(JSONObject options, UniJSCallback callback) {//前端请求testAsyncFunc方法,将返回 code:successif(callback != null) {JSONObject data = new JSONObject();data.put("code", "success");callback.invoke(data);}}
}

配置插件

Build

到此,插件包文件已经成功

注意】所有涉及到版本号的必须统一,否则build 会失败

插件调试

以本地注册插件为例

添加注册的Module

在 “app” Module根目录assets/dcloud_uniplugins.json文件。 在moudles节点下 添加你要注册的Module 或 Component

uni-app 项目中配置插件

新建nativePlugins

新建插件目录

引入插件arr文件

复制打包好的文件,到 uni-app 插件 android 目录

配置json文件

具体语法:原生开发者支持

App原生插件配置

然后重新生成android 自定义基座

发现打包报错,是由于版本问题,重新配置一下minSdkVersion

使用原生插件

<template><view class="content"><image class="logo" src="/static/logo.png"></image><view class="text-area"><text class="title">{{title}}</text></view><button @tap="handel">点击调用插件方法</button></view>
</template><script>const wqlTest = uni.requireNativePlugin('WQL-Test');export default {data() {return {title: '看到 你就成功了'}},onLoad() {},methods: {handel(){console.log(wqlTest)wqlTest.testAsyncFunc({name:'test'},(res)=>{uni.showModal({title: '提示',content: JSON.stringify(res),success: function (res) {if (res.confirm) {console.log('用户点击确定');} else if (res.cancel) {console.log('用户点击取消');}}});});}}}
</script><style>.content {display: flex;flex-direction: column;align-items: center;justify-content: center;}.logo {height: 200rpx;width: 200rpx;margin-top: 200rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.text-area {display: flex;justify-content: center;}.title {font-size: 36rpx;color: #8f8f94;}
</style>

我们现在android 项目中调试,先把原生插件测试好,在到uni-app项目中调试

复制此目录到

运行项目(使用模拟器)

说明插件已经ok啦

插件成功,就可以直接在uni-app 项目引入进行测试就好了,将不再赘述。

【注意】如果遇到缺少依赖等其他情况,可以Clean Project or Rebuild Project

查看日志

断点调试

源码地址

https://github.com/wuqiaoli/uni-app-test.git

Android原生插件开发-开发篇相关推荐

  1. Android原生插件开发-证书jks篇

    原创地址:Android原生插件开发-证书jks篇 · 语雀 jks生成 下载Android Studio Download Android Studio & App Tools - Andr ...

  2. React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块...

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  3. Uniapp关于 Android原生插件开发案例

    目录 一.准备工作(开发环境) 二.实操 1.使用Android studio开发工具打开UniPlugin-Hello-AS工程请在App离线SDK中查找 ​编辑 2.创建Andorid Libra ...

  4. 献给android原生应用层开发初学者技术架构选型和整合的方案思路(二)

    前篇<献给android原生应用层开发初学者技术架构选型和整合的方案思路(一)> 本篇侧重于安卓创建的创建和后续 demo 中用到的 lib 在 gradle 中的依赖配置,本文假设您已经 ...

  5. Android原生系统开发如何优雅的提供系统级的API供第三方程序调用?

    目录 故事背景 二.开发步骤 Step1.添加一个专属系统级服务 2.1.1.模仿Android原生服务接口,如WifiManager,规划自己的Manager 2.1.2.为我们的Manager生成 ...

  6. 记一次uni-app Android原生插件开发

    背景 项目使用到了RFID射频手持设备(PDA),用于读取羊只耳标功能. 原来有写过一个插件 https://ext.dcloud.net.cn/plugin?id=5246,新的设备与原来的不一样, ...

  7. 第八章 Android 原生程序开发与逆向分析(三)(原生程序文件格式)

    文章目录 原生程序文件格式 原生程序的文件类型 AArch64 ELF 文件格式 e_ident e_type e_machine e_version e_entry e_phoff e_shoff ...

  8. android原生系统开发板,刷android系统到开发板上.doc

    刷android系统到开发板上 将安卓系统刷系统到开发板上 马亲民 2014.12.20 1.擦除NAND FLASH中原有的Windows CE1 2.加载USB引导文件4 3.下载Linux内核9 ...

  9. Android Studio插件开发入门篇

    转载自:http://blog.csdn.net/qq_27258799 https://blog.csdn.net/qq_27258799/article/details/78093734 前言 本 ...

最新文章

  1. 收藏 | 10本免费的机器学习和数据科学书籍(附链接)
  2. 是时候抛弃web.xml了?
  3. Redux其实很简单(原理篇)
  4. ss.exe 命令参数应用
  5. can3--socketcan之mcp251x.c
  6. xshell1分钟就会自动断_手术室自动门不能正常控制开关门维修案例
  7. php mysql 取最小值_php – 根据另一个值更新最小值 – MySql
  8. VMWARE 构建局域网 + VMWARE SQL Server 服务器搭建
  9. POJ-2762 Going from u to v or from v to u?
  10. php获取字段中的第几个数字_php提取字符串中的数字
  11. Java写入磁盘阵列_什么是RAID?RAID有什么用?RAID原理
  12. 一阶倒立摆的起摆与稳摆simulink仿真
  13. u2000网管服务器系统安装,华为U2000安装
  14. cad安装日志文件发生错误_CAD安装问题,CAD安装时为什么显示内部发生错误急?...
  15. 已在此计算机上安装了此应用cad,电脑安装CAD时提示已安装导致安装失败的问题如何解决...
  16. linux 截屏_如何在Linux上截图
  17. 2021-05-22
  18. 疯狂来往android版,疯狂来往下载app
  19. c语言 m文件是什么,M文件扩展名 - 什么是.m以及如何打开? - ReviverSoft
  20. 知云文献翻译打不开_一款好用的文献英中翻译软件

热门文章

  1. NOIP 2002 字串变换
  2. 美国国土安全部预警:放一段声音,你的手机就可能被黑了
  3. 微信h5图表组件制作教程
  4. CodeForces 1253C
  5. 【开源】整板资源介绍——疯壳·ARM双处理器开发板系列
  6. 记一次服务器负载飙高排查过程
  7. 解决论文目录页码对不齐问题
  8. 分享120个ASP源码,总有一款适合您
  9. 【树莓派】配置无线网络(wifi)
  10. 上海合宙Luat 模块 Air724开发板 入门指南(1)