uni-app llama al código java (el desarrollo híbrido de uniapp integra el complemento nativo aar)

uni-app llama al código java (el desarrollo híbrido de uniapp integra el complemento nativo aar)


Prefacio

Estuve investigando uniapp recientemente y el líder tenía una solicitud. Para llamar al método java en uniapp. De hecho, el método Java está escrito en Android y finalmente empaquetado en un complemento nativo de aar, y luego se llama al complemento aar en uniapp.

1. Entorno de desarrollo y documentación.

1.Descarga del entorno Java

Estoy usando JDK1.8 aquí, configure las variables de entorno usted mismo
Dirección de descarga oficial: https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

2.Descarga del SDK sin conexión de la aplicación

Dirección de descarga oficial: https://nativesupport.dcloud.net.cn/AppDocs/download/android.html#

3.Descarga de AndroidStudio

Dirección de descarga oficial: https://developer.android.google.cn/studio/index.html

4.Descarga HBuilderX

Dirección de descarga oficial: https://www.dcloud.io/hbuilderx.html

5.uni-app amplía la documentación del complemento nativo

Dirección oficial: https://uniapp.dcloud.net.cn/plugin/native-plugin.html

6. Ejemplo oficial de complemento

Dirección oficial: https://ext.dcloud.net.cn/plugin?id=36

2. Empaquetar código Java en un archivo aar

1. Descargue el SDK de descompresión

Descargue y descomprima el SDK de la aplicación sin conexión

Insertar descripción de la imagen aquí

2. Abra el proyecto UniPlugin-Hello-AS.

Insertar descripción de la imagen aquí

3. Cree un nuevo módulo (Biblioteca de Android)

Haga clic derecho en el nombre del proyecto>Nuevo>Módulo>Biblioteca de Android. Configure el nombre del módulo, el nombre del paquete, la versión del SDK de Android, etc.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

4. Modificar build.gradle

Copie todo el contenido de build.gradle en uniplugin_module y sobrescriba el contenido de build.gradle de mylibrary
Insertar descripción de la imagen aquí

5. Modifique AndroidManifest.xml

Insertar descripción de la imagen aquíElimine androidTest y pruebe en la ruta de mylibrary src

6. Escribe código Java

Notas de código:
1. La clase debe heredar UniModule
2. Agregue la anotación @UniJSMethod(uiThread = false) al método
3. El método debe ser un método público
4. El tipo de retorno del método debe devolverse en forma de JSONObject

Cree una nueva clase MyTest en el paquete src

Insertar descripción de la imagen aquí

import com.alibaba.fastjson.JSONObject;

import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.common.UniModule;

public class MyTest extends UniModule {
    
    

    @UniJSMethod(uiThread = false)
    public JSONObject getTestData(){
    
    
        JSONObject object = new JSONObject();
        object.put("test_data","成功返回调用数据");
        return object;
    }
}

代码中涉及到com.sun.crypto.provider.SunJCE()报错问题,可在C:\Program Files\Java\jdk1.8.0_72\jre\lib\ext拷贝sunjce_provider.jar至libs中,并通过右键-add as library 引用即可

7. Empaquetar en un archivo aar

Seleccione mylibrary y empaquetelo a través de build-makemodule "*.mylibrary"
Insertar descripción de la imagen aquí

Después del empaquetado, puede encontrar el archivo aar en compilación>salidas

3. uni-app llama complementos nativos

1. Cambiar la estructura del proyecto

Documento oficial sobre los requisitos del formato de desarrollo de complementos nativos: https://nativesupport.dcloud.net.cn/NativePlugin/course/package.html#

  1. Utilice HBuilder para abrir el proyecto donde desea integrar el complemento
  2. Cree el directorio nativoplugins en el proyecto.(名称不可改)
  3. Realice cambios en el directorio Nativeplugins de acuerdo con los requisitos de formato oficiales.
  4. Escribir paquete.json

paquete.json

{
    
    
	"name": "mylibrary-debug",
	"id": "mylibrary-debug",
	"version": "1.1.1",
	"description": "测试使用",
	"_dp_type": "nativeplugin",
	"_dp_nativeplugin": {
    
    
		"android": {
    
    
			"plugins" :[
				{
    
    
					"type": "module",
					"name": "mylibrary-debug",
					"class": "uni.dcloud.io.mylibrary.MyTest"
				}
			],
			"integrateType": "aar"
		}
	}
}

El resultado final es el siguiente:
Insertar descripción de la imagen aquí

2. Agregue la configuración del complemento local en manifest.json

Insertar descripción de la imagen aquí

3. Empaca una base personalizada

Haga clic en "Ejecutar" en la barra de menú -> "Ejecutar en teléfono móvil o emulador" -> "Crear base personalizada" para generar un paquete de instalación base personalizado.
Insertar descripción de la imagen aquí

4. Ejecución de prueba

Haga clic en "Ejecutar" en la barra de menú -> "Ejecutar en teléfono o emulador" -> "Ejecutar en aplicación de Android" y seleccione la base personalizada
Insertar descripción de la imagen aquí

5. Llamada de código frontal

Utilice uni.requireNativePlugin para hacer referencia al complemento

	const PluginName = uni.requireNativePlugin(PluginName); // PluginName 为原生插件名称

Ejemplo:
aquí se llaman dos complementos diferentes, el llamado arriba es la demostración del artículo.
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_43548590/article/details/132333148
Recomendado
Clasificación