当前位置:   article > 正文

Uniapp关于 Android原生插件开发案例_uniplugin-hello-as

uniplugin-hello-as

目录

一、准备工作(开发环境)

二、实操

         1、使用Android studio开发工具打开UniPlugin-Hello-AS工程请在App离线SDK中查找 ​编辑

2、创建Andorid Libray名字为(mylibrary),名称可以自定义    ​编辑

3、复制代码到mylibrary下的build.gradle中

4、将避免混淆代码写入到consumer-rules.pro与proguard-rules.pro中

5、在mylibrary包下创建一个HelloWorld 类,如下图:

6、 打包arr包 ,步骤可以参考下面链接

7、.新建uniapp项目引入原生插件

8、在manifest文件中引入本地andorid插件

9、 云打包Andorid自定义基座包。

10、本地调试

三、插件开发需要注意的地方


一、准备工作(开发环境)

    这一部分就不做详细阐述

二、实操

    下载离线SDK   地址:   简介 | uni小程序SDK

   1、使用Android studio开发工具打开UniPlugin-Hello-AS工程请在App离线SDK中查找 

2、创建Andorid Libray名字为(mylibrary),名称可以自定义    

3、复制代码到mylibrary下的build.gradle

  1. //导入aar需要的配置
  2. repositories {
  3. flatDir {
  4. dirs 'libs'
  5. }
  6. }
  7. dependencies {
  8. //必须添加的依赖
  9. compileOnly 'androidx.recyclerview:recyclerview:1.0.0'
  10. compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'
  11. compileOnly 'androidx.appcompat:appcompat:1.0.0'
  12. compileOnly 'com.alibaba:fastjson:1.1.46.android'
  13. compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
  14. }

4、将避免混淆代码写入到consumer-rules.pro与proguard-rules.pro中

-keep public class * extends io.dcloud.feature.uniapp.common.UniModule{*;}

  如图

    

 5、在mylibrary包下创建一个HelloWorld 类,如下图:

  1. package com.xiaoya.mylibrary;
  2. import android.widget.Toast;
  3. import io.dcloud.feature.uniapp.annotation.UniJSMethod;
  4. import io.dcloud.feature.uniapp.bridge.UniJSCallback;
  5. import io.dcloud.feature.uniapp.common.UniModule;
  6. public class HelloWorld extends UniModule {
  7. // 加法运算
  8. @UniJSMethod(uiThread = false)
  9. public void mathAdd(int a,int b, UniJSCallback callback) {
  10. callback.invoke(a + b);
  11. }
  12. // 原生toast提示
  13. @UniJSMethod(uiThread = false)
  14. public void showToast(String msg, UniJSCallback callback) {
  15. Toast.makeText(mWXSDKInstance.getContext(),msg,Toast.LENGTH_SHORT).show();
  16. callback.invoke(msg);
  17. }
  18. }

  

6、 打包arr包 ,步骤可以参考下面链接

    新版Android studio 有可能不显示Gradle Task,可以参考下面链接第二部分。

   AndroidStudio 打包 Android项目 成 aar - 简书

  

7、.新建uniapp项目引入原生插件

        (1). 新建nativeplugins目录

        (2). 新建插件目录Chen-HelloWorld,子文件夹android并将release.aar放入。

        (3). 新建package.json文件文件描述并写入如下代码,  class格式为“包名+类名”。更多配置参考

8、在manifest文件中引入本地andorid插件

 9、 云打包Andorid自定义基座包。

特别注意:

编译Android原生组件的时候最好使用
  minSdkVersion 19  否则会打包失败。

10、本地调试

  1. <template>
  2. <view class="content">
  3. <input type="number" v-model="a" />
  4. <input type="number" v-model="b" />
  5. <button type="default" @click="showtoast">showtoast</button>
  6. <button type="default" @click="add">加法</button>
  7. </view>
  8. </template>
  9. <script>
  10. // 引入插件
  11. let andoridModule = uni.requireNativePlugin('Chen-HelloWorld');
  12. export default {
  13. data() {
  14. return {
  15. a: 1,
  16. b: 2
  17. }
  18. },
  19. methods: {
  20. add(){
  21. andoridModule.mathAdd(this.a,this.b,(e)=>{
  22. andoridModule.showToast('A+B=' + e);
  23. });
  24. },
  25. showtoast(){
  26. andoridModule.showToast('hello world!',(e)=>{
  27. console.log('showToast reuslt:',e);
  28. });
  29. }
  30. }
  31. }
  32. </script>
  33. <style>
  34. .content { padding-top: 200rpx; }
  35. </style>

三、插件开发需要注意的地方

 插件主要分为两类扩展:

  • Module 扩展 非 UI 的特定功能.

  • Component 扩展 实现特别功能的 Native 控件.

参考

https://nativesupport.dcloud.net.cn/NativePlugin/course/android.html#

Uniapp Android原生插件开发_惊悚的毛毛虫的博客-CSDN博客_uniapp原生插件开发

uniapp安卓原生插件开发流程_AndroidLMY的博客-CSDN博客_uniapp 原生开发

另外:编译Android原生组件的时候最好使用   minSdkVersion 19 否则会打包失败。

记得申请下离线key

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/716543
推荐阅读
相关标签
  

闽ICP备14008679号