plug-in de développement Android natif uniapp (module) et débogage local dans l'environnement Android (1)

plug-in de développement Android natif uniapp (module) et débogage local dans l'environnement Android

1. Perspectives de développement

En raison des limitations du framework uniapp, de nombreuses fonctions ne peuvent pas être utilisées aussi facilement que le développement Android natif.Par conséquent, il est nécessaire d'utiliser des plug-ins pour l'assistance, puis uniapp introduit des plug-ins pour rendre les fonctions parfaites. Sans plus tarder, passons directement au tutoriel ! N'hésitez pas à liker si vous le trouvez utile !

2. Préparation

  • Le projet uniapp (alias votre propre projet)
  • Téléchargez et installez JDK (java JDK) jdk1.8
  • Téléchargez et installez android studio ( téléchargement csdn ), téléchargez android studio depuis le site officiel (le téléchargement du site officiel doit contourner le mur et l'installation doit également contourner le mur, le réseau de l'entreprise doit pouvoir accéder au réseau externe, sinon le sdk ne sera pas téléchargé (le blogueur l'a aussi depuis longtemps))
  • Téléchargez et décompressez le SDK uniapp offline ( App offline SDK )
    insérez la description de l'image ici
    et les préparatifs sont terminés

3. Android importe le SDK hors ligne de l'application (package compressé téléchargé au point 4)

  • Décompressez le SDK hors ligne de l'application
    insérez la description de l'image ici
    insérez la description de l'image ici

  • Importer le projet UniPlugin-Hello-AS dans le studio Android
    insérez la description de l'image ici

  • Attendez que l'importation et la compilation soient terminées et passez en mode projet. La structure du projet après compilation est la suivante
    insérez la description de l'image ici

4. Créer un nouveau module (un module qui implémente nos fonctions)

  • nouveau module
    insérez la description de l'image ici

  • Sélectionnez la bibliothèque Android, remplissez le nom de votre package (n'oubliez pas de ne pas être le même que le nom du package lorsque uniapp a été empaqueté (c'est un puits, uniapp n'est pas compatible)), cliquez sur Terminer
    insérez la description de l'image ici

  • Importez et importez le plug-in uniapp-release.aar, qui est la principale bibliothèque de dépendances du module étendu
    Dans le SDK App Offline -> dossier SDK ----> libs -----> recherchez uniapp-release.aar
    insérez la description de l'image ici
    et déplacez-le vers android Dans le projet importé, passez au répertoire du projet

insérez la description de l'image ici

  • Ajouter des dépendances au module nouvellement créé (uniplugin_sunmi est mon propre nouveau module)
repositories {
    
    
    flatDir {
    
    
        dirs 'libs'
    }
}

dependencies {
    
    
    compileOnly fileTree(dir: 'libs', include: ['*.jar'])

    compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar'])

    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'com.alibaba:fastjson:1.1.46.android'
    implementation 'com.facebook.fresco:fresco:1.13.0'
    testImplementation 'junit:junit:4.12'

}

insérez la description de l'image ici



Si la synchronisation échoue, veuillez vérifier si l' erreur suivante s'affiche. Aucune signature ofm.android0 n'est applicable pour arg. Réessayez .
insérez la description de l'image ici
cliquez sur le fichier -> synchroniser le projet avec les fichiers Gradle à synchroniser
insérez la description de l'image ici

  • Créez une nouvelle classe java (la classe utilisée pour implémenter nos fonctions)
    insérez la description de l'image ici
    insérez la description de l'image ici
    et configurez-la dans le fichier AndroidManifest.xml (obligatoire)
 <application>
        <activity android:name="com.example.uniplugin_sunmi.ScanCode"
            android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar"></activity>
    </application>

insérez la description de l'image ici
Écrivez la classe du module (c'est-à-dire notre nouveau nom de classe), écrivez le code
de test

package com.example.uniplugin_sunmi;

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;

// 一定要继承UniModule
public class ScanCode extends UniModule {
    
    
    // 使用UniJSMethod注解,才能使用js调用
    @UniJSMethod(uiThread = true)
    public void  add (JSONObject json, UniJSCallback callback) {
    
    
        final int a = json.getInteger("a");
        final int b = json.getInteger("b");
        callback.invoke(new JSONObject() {
    
    {
    
    
            put("code", 0);
            put("result", a + b);
        }});
    }
}

fin d'écriture

  • Ajoutez le plug-in uniapp dans build.gradle (app), cliquez sur synchroniser maintenant
    insérez la description de l'image ici
  • Ajouter un nouveau plugin dans dcloud_uniplugin.json, note : le nom du plugin sera référencé dans uniapp
    insérez la description de l'image ici
  • Empaquetez le module dans un fichier aar de plug-in.
    insérez la description de l'image ici
    Si vous ne trouvez pas le bouton assmbleRelese, vous pouvez
    insérez la description de l'image ici
    insérez la description de l'image ici
    le définir. Après l'empaquetage, vous pouvez afficher le fichier aar dans la construction
    insérez la description de l'image ici

5. Utilisation dans uniapp

  • Créez un répertoire de plugins et configurez la configuration plugin package.json que vous venez de créer
    insérez la description de l'image ici
    insérez la description de l'image ici
    insérez la description de l'image ici
{
    
    
	"name": "sunmi-scan",
	"id": "sunmi-scan",
	"version": "1.0.0",
	"description": "订单的",
	"_dp_type": "nativeplugin",
	"_dp_nativeplugin": {
    
    
		"android": {
    
    
			"integrateType": "aar",
			"plugins": [{
    
    
				"type": "module",
				"name": "sunmi-scan",
				"class": "com.example.uniplugin_sunmi.ScanCode"
			}],
			 "minSdkVersion": "19"
		}
	}
}

insérez la description de l'image ici

  • utiliser le plugin
    insérez la description de l'image ici
    insérez la description de l'image ici

Ajouter un plugin local

  • Utiliser des plugins
    à inclure dans la page
<template>
  <view class="content">
    <image class="logo" src="/static/logo.png"></image>
    <view class="text-area">
      <button @click="test">测试</button>
    </view>
  </view>
</template>

<script setup lang="ts">
  const test= ()=>{
    
    
    // 引入自定义插件
    const testModule = uni.requireNativePlugin('sunmi-scan')
    // 使用module的add方法
    testModule.add({
    
    
      a:1,b:3
    },e=>{
    
    
      uni.showToast({
    
    
        title:JSON.stringify(e),
        icon:'none'
      })
    })
  }
</script>

Enfin : l'emballage comme base de test (le plus important)

Je suppose que tu aimes

Origine blog.csdn.net/weixin_39246975/article/details/129078281
conseillé
Classement