Android原生插件开发-开发篇

原创文档: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:success
        if(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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 课程介绍Android开发所需要的比较全面的基础知识,原理。这样在随后的课程里或阅读开源的App时能读懂代码。2. 课时的编排使用Google官方的Android Developer CN的分类,删减了对jetpack(Androidx)的相关课题。因为jetpack并不是核心库,国内大部分App都不会使用它。3. 使用Java作为项目例子代码,要学习Android开发,首先得会Java语言,因为Android API的核心代码是用Java编写的,也可以使用Koltin语言,但是当阅读Android源码时会Java语言是绕不过去的。Java代码可以通过Android Studio的菜单 Code - Convert Java File To Kotlin File来转换为Koltin. 4. 主要介绍Android的核心组件,类库. 但是不会详细介绍jetpack的库,因为这个库使用koltin,而且对AS有强依赖,比如升级了AS不得不升级jetpack(androidx)。或者对于低版本的androidx,新版AS干脆不支持;还有就是依赖GMS核心的都不准备讲,只介绍开源的第三方项目,可以发布到华为,小米等国内Android系统的类库。5. 这里只是介绍Android原生开发,不介绍Flutter,React Native,Hipppy等跨平台框架。选择原生框架的好处就是可以使用系统平台最新的特性,最高的性能,最少的学习成本。当然这些跨平台框架访问系统的一些独有功能还是得通过桥接原生框架调用。Flutter得要学会Dart,Java语言,并且学会它的框架体系API. React Native和Hippy这些H5框架通过JavaScript访问原生功能的框架也得学会JavaScript,还要会Vue,React框架,之后就是Html,Css布局。 这些还需要下载安装开发额外的开发环境。当然它的好处是跨Android,iOS两个平台。童鞋根据自己的项目要求进行取舍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值