请问uni-app本地离线打包后,如何调用自定义JAVA类中方法?
一、在H5+ 中是可以调用成功的,代码如下:
1、网页中:
function plusReady(){
var NjsHello = plus.android.importClass("com.example.H5PlusPlugin.HelloWorld");
alert(NjsHello.BIRTHDAY);
var hello = new NjsHello();
hello.setUsername('hello h5+!');
var wv = plus.android.currentWebview();
hello.print(0,0,0,0,wv);
var sname = hello.getUsername();
console.log( "NjsHello Final's value: "+sname );
}
2、JAVA代码:
public class HelloWorld {
printer mPrinter = new printer();
public static final String BIRTHDAY="2007-03-16";
public String username ="2007-03-16";
public String getUsername() {
try {
int result = mPrinter.Open();
if (result ==0){
mPrinter.PrintLineInit(50);
mPrinter.PrintLineStringByType("HelloWorld",40,printer.PrintType.Centering,false);
mPrinter.PrintLineEnd();
mPrinter.Close();
}
}
catch (Exception e){
e.printStackTrace();
}
return username;
}
public void setUsername(String s){
username = s;
System.out.println("call:"+username);
}
public void print(int x, int y, int width, int height, WebView wv){
username = wv.getUrl();
}
public static void main( String args[] ) {
HelloWorld helloWorld = new HelloWorld();
helloWorld.setUsername("hello");
System.out.println(helloWorld.getUsername());
}
}
二、上面代码在uni-app中却不能正常执行,
<template>
<view class="content">
<text class="title">{{title}}</text>
<button class="button" v-on:click="print()">print</button>
<button class="button" v-on:click="showMessage('fuck')">message</button>
</view>
</template>
<script>
export default {
data: {
title: 'Hello wf'
},
methods:{
print(){
console.log("print!")
var pages = getCurrentPages();
var page = pages[pages.length - 1];
// #ifdef APP-PLUS
var currentWebview = page.$getAppWebview();
// 弹出系统提示对话框
plus.nativeUI.alert( "Plus is ready!", function(){
/* 这段正常
var intent = plus.android.newObject("android.content.Intent");
//currentWebview.loadURL("http://www.baidu.com");
console.log(currentWebview.getURL());
*/
//打印测试,下面三行执行没效果
var hello = plus.android.newObject("com.example.H5PlusPlugin.HelloWorld");
var sname = hello.getUsername();
console.log( "NjsHello Final's value: "+sname );
}, "nativeUI", "OK" );
// #endif
三、问题:uni-app本地离线打包后,如何调用自定义JAVA类中方法?主要需求是ANDROID原生集成物联网终端手持机提供本机小票打印等硬件功能,并本地打包uni-app,在uni-app中以JS方式调用打印小票接口(android 原生JAVA代码)。
10 个回复
DCloud_UNI_GSQ
ynkmwf (作者) - ynkmwf
没有提示。
我已按示例写了个自定插件,H5+页面调用测试OK,
现在的问题是:uni-app是否支持自定义插件开发?要如如何调用,是否有文档,示例
DCloud_UNI_GSQ
可以导出资源,其他同普通5+项目离线打包。
2018-10-19 10:45
zhangdaren - 小程序转uniapp工具:https://ext.dcloud.net.cn/plugin?id=2656
请问有示例吗?看了5+的,那个是单独一个html文件,然后在里面添加按钮,再去调用原生。因为uni打包后都已经不是原来那个样子了,请教一下uni该怎么做?
1***@qq.com
请问你解决了吗。我也碰到了同样的问题。这边写的从html里面注入可以调用。从uniapp,没有注入的地方
zhangdaren
直接在onload里写就好了
2018-12-02 11:10
东庐
uni能引用jar吗,应该放在哪个目录下?
9***@qq.com
大佬 问下 怎么引入的啊 加我Q请教一下 谢谢
2019-09-05 13:50
阿king007 - 007
这个问题你解决了么 ,uni-app调用自定义JAVA类中方法这个我没调用起来,求大神指点
东庐
离线打包,把jar包放在libs里,引入包(忘了在哪文件引入了)
2019-09-16 12:16
h***@qq.com
官方没有给一个简单易行的说明,刚进来 想调用jar ,一头雾水,同样求解
h***@huiyuandata.com.cn
???解决了吗大佬
1***@qq.com - 一只小白
解决了吗 ?jar怎么引入进去 ?
1***@qq.com
大哥,你是调旺POS之类的手持终端吗?搞定了吗?求解决方案!!!