Android uni-app 封装原生插件

前言

据广大用户的需求,需要把我们anyRTC的SDK,封装到uni-app来使用,并且实现音视频通话。这边文章图文讲解一下怎么封装原生插件,并且在下一章uni-app实现音视频通话。

anyRTC开发者中心

1.uni-app是什么?

在这里插入图片描述
一个使用Vue.js开发所有前端应用框架,开发者编写一套代码,可发布到ios、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。
如果你还没有了解uni-app是什么:点击这里:这篇文章举例说明。

2.uni-app的特点

1、跨平台更多

  • 真正做到“一套代码、多端发行”!
  • 条件编译:优雅的在一个项目里调用不同平台的特色功能!

2、运行体验好

  • 组件、api与微信小程序一致
  • 兼容weex原生渲染

3、通过技术栈,学习成本低

  • vue的语法、微信小程序的api
  • 内嵌mpvue

4、开放生态,组件更丰富

5、支持通过npm安装第三方包

6、支持微信小程序自定义组件及SDK

7、兼容mpvue组件及项目

8、App端支持和原生混合编码

9、DCloud将发布插件市场

3.uni-app封装原生插件

3.1 Android离线SDK下载:

点击下载,两个SDK均可。img

下载完成,解压备用:img

3.2 新建Android项目

打开Android Studio,建立一个No Activity项目。在菜单栏选择File>New>New Project

img

然后Next:填写项目名,包名,已经API Level。

img

然后Finish,为了更好的使用,我们把它转到Project视图。接下来创建开发的模块(Module)

点击File>New>New Module.

img

然后选择Android Library,点击Next:

img

自定义Library名 和包名,点击Finish

img

创建完毕视图如下:

img

接下来打开testplugin项目里的build.gradle,将原生的dependencies下默认生成的依赖注释掉,添加uni-app所需库的依赖:

compileOnly "com.android.support:recyclerview-v7:28.0.0"
compileOnly "com.android.support:support-v4:28.0.0"
compileOnly "com.android.support:appcompat-v7:28.0.0"
implementation 'com.alibaba:fastjson:1.1.46.android'
implementation 'com.facebook.fresco:fresco:1.13.0'
复制代码

添加完成如下图所示:img

另外把导入的uniapp-release.aar插件,它是扩展module主要依赖库

img

回到刚刚创建的testplugin的build.gradle中,接下来进行导入aar需要的配置操作:

添加: 放在android{}外

repositories {
    flatDir {
        dirs 'libs'
    }
}
复制代码

然后在dependencies内添加:

compileOnly fileTree(dir: '../app/libs', include: ['uniapp-release.aar'])
复制代码

添加完毕,如下图:img

然后 同步 Sync Now!

3.3 原生插件的开发

以扩展Module为例,如图创建类TestModule:

img

Module扩展注意事项:

img

写一个小demo:

import android.util.Log;
import com.alibaba.fastjson.JSONObject;
import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.bridge.JSCallback;
import com.taobao.weex.common.WXModule;

public class TestModule extends WXModule{
   
    String NAME="name";
    String AGE ="age";

    @JSMethod(uiThread = true)
    public void testText(JSONObject options, JSCallback callBack){
   
        Log.e("TestModule", "成功调用!" );
        String name =options.getString(NAME);
        String age =options.getString(AGE);
        JSONObject data =new JSONObject();
        if (name !=null && !name.isEmpty() && age !=null && !age.isEmpty()){
   
            int _age =Integer.parseInt(age);
            if (_age<0 || _age
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值