UniApp的Android插件开发和使用,全程不使用HBuilder,适合Linux开发者

原创
08/11 23:53
阅读数 134

开发

  1. 在AndroidStudio里创建library类型的module
  2. 下载uniapp的sdk包,https://nativesupport.dcloud.net.cn/AppDocs/download/android ,并解压到目录,如uniappsdk
  3. 在module的libs目录放入uniapp-v8-release.aar,这个文件在uniappsdk/HBuilder-Integrate-AS/simpleDemo/libs下面,这个文件名里的v8可能会有变化,但是总体的文件名不会变
  4. 在module的build.gradle里引入配置
repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {

    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'
    compileOnly 'com.alibaba:fastjson:1.1.46.android'

    compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs')
    provided fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
}
  1. 创建插件类,并继承UniModule
package com.boyuekeji.unipluginlearn;

import android.util.Log;

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

public class LearnModule extends UniModule {

    @UniJSMethod(uiThread = false)
    public String toast() {
        Log.i(Utils.LOG_TAG, "执行了toast方法");
        return "这是uniplugin#toast的返回,hahaha";
    }
}
  1. 执行gradle任务里面的other里的assembleRelease,来生成.arr包文件,最终生成在build/outputs/aar目录下面

在uniapp的离线打包项目里,引入插件包

以下所说的项目,不是上一步的插件项目,而是离线打包uniapp的项目

  1. 将上一步生成的.aar包放在libs目录下
  2. 在src/main/assets下面创建文件dcloud_uniplugins.json文件,在这个文件里配置上一步的插件
{
  "nativePlugins": [
    {
      "plugins": [
        {
          "type": "module",
          "name": "unipluginlearn",
          "class": "com.boyuekeji.unipluginlearn.LearnModule"
        }
      ]
    }
  ]
}

上面的name可以随便指定,这个name是需要在uniapp代码里进行引入的,class是插件的类的全程

  1. 在uniapp里引入并使用插件
const uniplugin = uni.requireNativePlugin('unipluginlearn')
console.log('执行unilearn返回: ', uniplugin.toast())

总结,开发和使用起来都是很简单的,注意别把细节搞错就可以了

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部