安卓原生插件开发用于uniapp
参考: https://blog.csdn.net/similing/article/details/101770348#1__14
(因为我不是主java开发或者安卓开发),有些地方也写的不太好(多多包含)
这里只介绍了基于weex拓展Android的module模式,也就是不会使用到原生ui控件
个人业务原因只需要通过原生sdk获取数据就行了( 请大家有意思开发原生插件得耐心看完哈 )
开发插件
官网参考文案:https://ask.dcloud.net.cn/article/35416
个人觉得仔细咀嚼一下官方文档挺好得。
这些准备东西就自己配置啦。还有就是weex这里。我就看了一下对Android的拓展(有个了解就好了)
贴出地址
-
https://weex.apache.org/zh/docs/api/android-apis.html
-
https://weex.apache.org/zh/guide/extend/extend-android.html
因为官方文案对开发前得步骤都挺详细了,所以我这里不做阐述了
这里演示一个原生插件和uniapp通信得demo
- 新建得一个插件目录
我把uniapp
的包放到libs
文件夹下了。因为试过一次在uniapp自定义底座得时候找不到自己写的插件
- 根据官方文案配置好相应的文件
import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.bridge.JSCallback;
import com.taobao.weex.common.WXModule;
import java.util.HashMap;
import java.util.Map;
public class testModule extends WXModule {
@JSMethod( uiThread = false )
public void getData(JSCallback callback) {
String name = "mike";
int age = 18;
Map<String, Object> map = new HashMap<>();
map.put("name", name);
map.put("age", age);
callback.invoke(map);
}
}
贴出代码方便大家不同敲了。
- 插件的一个类
-
然后在HbuilderX中写uniapp
<template> <view class="content"> <button type="primary" plain @click="handleClick">click me</button> <button type="default" @click="handleClick">button</button> </view> </template> <script> const AModule = uni.requireNativePlugin('testModule'); export default { data() { return {}; }, onLoad() {}, methods: { handleClick() { AModule.getData(res => { uni.showToast({ title: JSON.stringify(res), icon: "none" }) }); } } }; </script> <style></style>
开发完
- 需要在app下的build.gradle中加入开发的uniapp插件
2. app/src/main/assets/dcloud_uniplugins.json中注册插件
-
有两种方式注册插件
https://ask.dcloud.net.cn/article/35416
plugins里面插件的name属性对应你在uniapp中引用的原生插件名字
这里有两种方式将uniapp和刚刚写的插件连接起来
生成本地app打包资源。
接着控制台下面就会有进度提示啦。(这里注意下manifest.json下面得appid)。
必须填,不然打包不成功得
这个文件夹直接复制或者剪切到该图片下的文件下
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191021113715811.png)
然后就可以点击运行了。模拟器我是直接使用android studio自带得(个人感觉新版挺好用得)
具体流程就是
-
按照流程选择Gradle来打包插件
双击**
assembleRelease
**就会运行了 -
打包的文件在那里?
在这里!
在HBuilderX中配置原生插件
-
这里我把刚刚打包出来的amodule-release文件重命名了
-
首先在项目根目录下创建一个
nativeplugins
文件夹 -
每添加一个插件,就新建一个文件夹
-
例如我这里是有一个原生插件
testModule
-
插件目录下文件存放
android
和ios
打包好的插件 -
插件根目录下要放一个
package.json
文件具体配置参考 https://ask.dcloud.net.cn/article/35414
package.json文件所示
那么就会在项目得manifest.json文件看到
然后就在运行的时候选择自定义底座,底座打包好之后,就再点一次运行。底座选择自定义得就可以运行了。我太水了。后面得选项截图不了。
运行图(点击按钮之后)
祝大家都可以开发成功啊哈