浅谈uniapp中开发安卓原生插件

其实官方文档介绍的比较清楚而且详细,但是有时候他太墨迹,你一下子找不到自己想要的,所以我总结了一下开发的提纲,也是为了自己方便下次使用。

1.第一步,下载官方提供的Android的示例工程,然后倒入UniPlugin-Hello-AS工程请在App离线SDK中查找,之后Android studio,编译运行项目成功。

2.第二步,在项目下新建一个module,然后选择右侧的"Android library",填写好名称等信息之后,点击finish,这个module,就是我们日后要在uniapp里面用到的module。

3.第三步,在刚才新建的module的build.gradle文件里面,添加如下依赖,然后构建成功。

4.第四步,然后在module工程里面新建一个类,继承UniModule,编写你真正需要在uniapp里面要调用的业务代码,并注册插件,如下图

c 复制代码
public class TestModule extends UniModule {
    @UniJSMethod(uiThread = true)
    public void testAsyanc(JSONObject options, UniJSCallback callback) {
        Log.e("TestModule", "testAsyncFunc--" + options);
        if (callback != null) {
            JSONObject data = new JSONObject();
            data.put("code", "success");
            callback.invoke(data);
        }
    }

    //run JS thread
    @UniJSMethod(uiThread = false)
    public JSONObject testSyncFunc() {
        JSONObject data = new JSONObject();
        data.put("code", "success");
        return data;
    }
}

此处注册的插件的"name",与插件的文件的名称保持一致,方便日后使用,"class"为日后调用的方法的文件的全类名。

5.第五步,点击Android studio工具的右侧的Gradle工具栏,将我们的module打包成arr文件,打包完成后的文件去module的build-outputs-arr文件夹里面去找。

6.第六步,打开uniapp的官方推荐开发工具HbuilderX,在项目的根目录,新建nativeplugins的文件夹,然后里面新建一个文件夹,名字和插件.arr的文件保持一致,然后在新建的文件夹里面新建android文件夹和一个叫package.json的文件,然后将刚才第五步打包生成的arr文件放入到新建的android文件夹中,然后在package.json的文件中配置插件,如下图,name可以随意起名,为了方便我就都起了一样的名字,id的名称一定和文件的名称一样,下面的plugins里面的配置和刚才Android studio里面的配置保持一致。

7.第七步,使用HbuildX开发工具,制定调试打包的基座(其实这里的打包基座就是将配置有原生插件的uniapp工程打包成一个Android 的apk安装包,然后运行到手机上,去调试.打包基座之前,要记得在项目的manifest文件里面配置项目的插件


8.第八步,制作完自定义基座之后,运行项目到Android App基座手机,然后去调试,就可以了!


完整项目附件:点此下载

相关推荐
齊家治國平天下9 分钟前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager
Xzaveir34 分钟前
企业号码展示不可观测怎么办:状态机、拨测事件与异常回放
android·人工智能
2501_9160074743 分钟前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
黄林晴1 小时前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
恋猫de小郭2 小时前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
HLC++15 小时前
Linux的进程间通信
android·linux·服务器
hoLzwEge16 小时前
解码 IDE 智能提示:jsconfig.json 辅助开发全攻略
前端·前端框架
爱笑鱼18 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
爱笑鱼19 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
gis开发之家19 小时前
《Vue3 从入门到大神35篇》Vue3 源码详解(五):effect 依赖收集原理——track 与 trigger 是如何工作的?
javascript·typescript·前端框架·vue3·vue3源码