当前位置:   article > 正文

uniapp开发android原生插件_uniplugin-hello-as

uniplugin-hello-as

一、下载原生开发SDK

           Android 离线SDK - 正式版 | uni小程序SDK (dcloud.net.cn)

           https://nativesupport.dcloud.net.cn/AppDocs/download/android.html

          将开发uniappa原生android的插件解压到ben本地目录,目录结构如下:

          接下就可以使用 UniPlugin-Hello-AS这个工程制作原生插件

二、制作原生插件

1、androidstudio打开UniPlugin-Hello-AS

        调整好本地androidsdk和gradle环境进行下一步

2、创建一个library的module

3、配置gradle依赖

        将uniplugin_modle模块下的gradle依赖全部拷贝到新建的mylibrary的gradle中

  1. compileOnly fileTree(dir: 'libs', include: ['*.jar'])
  2. compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar'])
  3. compileOnly 'androidx.recyclerview:recyclerview:1.0.0'
  4. compileOnly 'androidx.legacy:legacy-support-v4:1.0.0'
  5. compileOnly 'androidx.appcompat:appcompat:1.0.0'
  6. implementation 'com.alibaba:fastjson:1.2.83'
  7. implementation 'com.facebook.fresco:fresco:1.13.0'

4、编写android代码

  1. /**
  2. * 提供给uni的js调用的类需要继承 io.dcloud.feature.uniapp.common.UniModule
  3. * 这里定义的java类名就是后面uniapp调用的插件名称
  4. */
  5. public class MyLibraryPlugin extends UniModule {
  6. /**
  7. * 暴露一个给js调用的方法
  8. * UniJSMethod注解标记是否需要主线程调用
  9. * @return
  10. */
  11. @UniJSMethod(uiThread = false)
  12. public String getTimeFromNative(){
  13. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
  14. return "get time from native " + sdf.format(new Date());
  15. }
  16. }

5、打包aar文件

         进入到工程的根目录,执行assembleRelease命令

 ./gradlew   mylibrary:assembleRelease

        在build->outputs->aar提取aar文件

      这样就生成了一个名为mylibrary-release.aar的插件

6、编写插件打包配置package.json

  1. {
  2. "name": "MyLibraryPlugin",
  3. "id": "MyLibraryPlugin",
  4. "version": "1.0",
  5. "description": "uniapp原生android插件",
  6. "_dp_type":"nativeplugin",
  7. "_dp_nativeplugin":{
  8. "android": {
  9. "plugins": [
  10. {
  11. "type": "module",
  12. "name": "SunMiUtilsService",
  13. "class": "com.example.mylibrary.MyLibraryPlugin"
  14. }
  15. ],
  16. "integrateType": "aar",
  17. "minSdkVersion": "21"
  18. }
  19. }
  20. }

       这样package.json文件就配置好了 

三、uniapp集成插件

 1、导入原生插件

        在uniapp项目目录下创建一个名为nativeplugins的文件夹,在nativeplugins目录下创建目录以插件名称MyLibraryPlugin命名,在MyLibraryPlugin插件目录下创建一个android目录,将mylibrary-release.aar插件拷贝进去,在android的统计目录中奖package.json文件拷贝进去,整体目录结构如下:



2、在manifest.json中配置插件

3、测试代码

  1. methods: {
  2. clickNative(){
  3. const libPlugin = uni.requireNativePlugin("MyLibraryPlugin");
  4. uni.showModal({
  5. title:'提示',
  6. content: libPlugin.getTimeFromNative(),
  7. })
  8. },
  9. }

         注意:新引入插件一定要重新对自定义基座进行打包,不然插件引入会失效

     

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

闽ICP备14008679号