uni-app 调用 jar 包

官方文档及资源

uni-app 原生插件文档:https://uniapp.dcloud.io/api/extend/native-plugin
uni-app 原生插件开发文档:https://nativesupport.dcloud.net.cn/NativePlugin/README
App 离线 SDK 下载地址:https://nativesupport.dcloud.net.cn/AppDocs/download/android


App 离线 SDK 下载解压后,使用 Android Studio 打开UniPlugin-Hello-AS 工程,删除自带的三个模块:

uniplugin_componentuniplugin_moduleuniplugin_richalert


    添加模块,将需要调用的 jar 包拷贝到新增模块的 libs文件夹下,并添加依赖:
    uni-app 调用 jar 包编写 js 与 jar包相互调用的中间件:
package com.example.handheld;

import android.util.Log;

import com.alibaba.fastjson.JSONObject;
import com.cmcid.lib.Common;
import com.cmcid.lib.Device;
import com.cmcid.lib.OnHandleListener;
import com.cmcid.lib.Power;
import com.taobao.weex.annotation.JSMethod;
import com.taobao.weex.bridge.JSCallback;
import com.taobao.weex.common.WXModule;

public class HandheldModule extends WXModule {

private Device device;
private Beep beep;

public static final String TAG = "Lu Chang li";
private JSCallback handleCallback;

OnHandleListener onHandleListener = new OnHandleListener() {
@Override
public void onDown() {
if (handleCallback == null) return;
mWXSDKInstance.runOnUiThread(new Runnable() {
@Override
public void run() {
JSONObject data = new JSONObject();
data.put("code", "down");
// invokeAndKeepAlive 可以持续回调, invoke只能回调一次
handleCallback.invokeAndKeepAlive(data);
}
});
}

@Override
public void onUp() {
if (handleCallback == null) return;
mWXSDKInstance.runOnUiThread(new Runnable() {
@Override
public void run() {
JSONObject data = new JSONObject();
data.put("code", "up");
handleCallback.invokeAndKeepAlive(data);
}
});
}
};

/**
* 初始化
*/
@JSMethod
public void initHandheld(JSCallback callback) {
device = Device.getInstance(mWXSDKInstance.getContext());
device.setOnHandleListener(onHandleListener);

JSONObject result = new JSONObject();
if (device.connect()) {
result.put("code", "success");
} else {
result.put("code", "failure");
}
callback.invoke(result);

beep = new Beep(mWXSDKInstance.getContext());
}

/**
* 设置监听器
*/
@JSMethod
public void setOnHandleListener(JSCallback callback) {
this.handleCallback = callback;
}

/*
* 设置功率
*/
@JSMethod
public void setPower(JSONObject option, JSCallback callback) {
Power power = JSONObject.parseObject(option.toJSONString(), Power.class);
JSONObject result = new JSONObject();
try {
device.setPower(power);
result.put("code", "success");
beep.playOk();
} catch (Exception e) {
e.printStackTrace();
result.put("code", "failure");
beep.playError();
}
callback.invoke(result);
}
}

    注册中间件:
    uni-app 调用 jar 包
    app/assets/dcloud_uniplugins.json文件中添加:
"plugins": [
{
"type": "module",
"name": "HandheldModule",
"class": "com.example.handheld.HandheldModule"
}
]

    在 vue 中调用 jar 包中的方法:
<script>
var handheld = uni.requireNativePlugin("HandheldModule")

const defaultPower = {
db: 28,
dwell: 200,
idle: 50
}
export default {
data () {
return {
power: Object.assign({}, defaultPower),
}
},
mounted() {
handheld.initHandheld((res) => {
});
handheld.setOnHandleListener(this.onHandler);
},
methods: {
onHandler: function(e) {
if (e.code === 'up') {

} else if (e.code === 'down') {

}
},
setPowerClick: function(e) {
handheld.setPower(this.power, (res)=> {
})
}
}
}
</script>

    使用 HBuilder 生成本地打包App资源 拷贝到 app 资源文件夹下。

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

uni-app 调用 jar 包

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » uni-app 调用 jar 包
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏