制作原生插件-android
uni-app 2019-07-31 11:00:47

1、 按照官方的SDK集成一遍

SDK下载:http://ask.dcloud.net.cn/article/103

 

2、uniapp项目引入原生项目中,配置相关参数

官方教程:https://ask.dcloud.net.cn/article/13232

https://ask.dcloud.net.cn/article/508

 

修改app包名

(1) Android:app - manifests - AndroidManifest.xml

修改package:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.dcloud.UNIE9BF158">

(2) Project :app - src -main - assets - apps

新增文件夹__UNI__E9BF158,把hbx生成的app本地打包目录www拖进去

(3) Project :app - src -main - assets - data - xxxx_control.xml

修改appid和appver:<app appid="__UNI__E9BF158" appver="1.0.0"/>

Tips:其中appid值为HBuilder应用的appid,必须与应用manifest.json中的id值完全一致;appver为应用的版本号,用于应用资源的升级,必须保持与manifest.json中的version -> name值完全一致

(4) Project :app - build.gradle

修改:applicationId "io.dcloud.UNIE9BF158"

(5) Project :app - src - main - res - values - strings.xml

修改app_name:HBuilder-Hello 改为自己的app名称

 

3、原生插件引入原生项目中 / 创建新插件(如果使用自定义基座来调试android,只要插件包有变动,就必须重新打个自定义基座,插件才生效,有次数限制)

https://ask.dcloud.net.cn/article/35416

看一下第五步

Mac版Android Studio自动添加依赖,options + 回车

 

五、配置插件运用到uni-app中

 

 


 

开发中

可以先使用官方的alert插件来跑一下程序,比如加一个toast来测试方法是否执行:

C/C++ Code复制内容到剪贴板
  1. @JSMethod(uiThread = true)  
  2. public void yp(){  
  3.     Toast.makeText(mWXSDKInstance.getContext(),"我是友好的弹出框", Toast.LENGTH_SHORT).show();  
  4. }  

 

打印日志,可以在android studio里打印日志,并在Logcat中查询日志

C/C++ Code复制内容到剪贴板
  1. System.out.println("jpush 执行init方法");  

 

 打包成aar

1.jpg

 

 

复制完整的类名:

2.jpg

 

 

新建插件开发目录:

1、点击Android Studio 菜单项 File--->New--->New Module,选择Android Library

2、配置:

Application / Library name: uniplugin_YYJPushIM

Package name:uni.dcloud.io.uniplugin_yyjpushim

 

 

算了,拿官方的richalert改吧!

 

1、修改包名

项目下 app - build.gradle :

Java Code复制内容到剪贴板
  1. // 添加uni-app插件  
  2. implementation project(':uniplugin_richalert')  
  3.   
  4. // 修改为:  
  5. implementation project(':uniplugin_jpushim')  

批量替换:把richalert换成jpushim

 

app - src - main - assets - dcloud_uniplugins.json:

修改nativePlugins :

Java Code复制内容到剪贴板
  1. "nativePlugins": [  
  2.   {  
  3.     "hooksClass""",  
  4.     "plugins": [  
  5.       {  
  6.         "type""module",  
  7.         "name""YOYO-JPushIM",  
  8.         "class""uni.dcloud.io.uniplugin_yyjpushim.YYJPushIMWXModule"  
  9.       }  
  10.     ]  
  11.   },  

 

uniplugin_richalert - src - main - res - values - string.xml:

Java Code复制内容到剪贴板
  1. <resources>  
  2.     <string name="app_name">uniplugin_JPushIM</string>  
  3. </resources>  

 

2、添加依赖包:

app - build.gradle

Java Code复制内容到剪贴板
  1. implementation 'cn.jiguang.sdk:jmessage:2.8.2'  // 此处以JMessage 2.9.0 版本为例。  
  2. implementation 'cn.jiguang.sdk:jcore:1.2.7'  // 此处以JCore 2.0.0 版本为例。  

添加完依赖后,需要同步一下:

右上角,点击:

QQ截图20191021134620.jpg

 

这里注意点,导入第三方类库,两种方式,1、手动集成;2、自动集成;

1、手动导入SDK,注意是在工程的libs中,与插件的libs中都需要拷贝.jar包,然后再clean,即可。

2、自动集成:在工程的app - build.gradle添加以后,还要在插件的 build.gradle添加

Java Code复制内容到剪贴板
  1.     compileOnly 'cn.jiguang.sdk:jmessage:2.8.2'  // 此处以JMessage 2.9.0 版本为例。  
  2.     compileOnly 'cn.jiguang.sdk:jcore:1.2.7'  // 此处以JCore 2.0.0 版本为例。  

 

 

 

 

 

本文来自于:http://www.yoyo88.cn/study/uniapp/445.html

Powered by yoyo苏ICP备15045725号-1