UniApp的Android插件開發和使用,全程不使用HBuilder,適合Linux開發者

開發

  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())

總結,開發和使用起來都是很簡單的,注意別把細節搞錯就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章