java后台往页面传数据_原生java代码怎么向页面传数据

谢谢大家,已经实现了,重点就是在把调用插件的Webview缓存下来,下次要发消息,就调用这个webview,向他传消息就好了。

参考官方给的插件样例,增加一个init方法。

js端,在官方test.js的PluginTestFunctionSyncArrayArgu 方法后面加上init方法

PluginTestFunctionSyncArrayArgu : function (Argus)

{

return B.execSync(_BARCODE, "PluginTestFunctionSyncArrayArgu", [Argus]);

},

// Android methods

init : function(Argus) {

B.exec(_BARCODE, "init", [Argus]);

}

java端,在官方给的PGPlugintest.java上增加这两个方法

private static IWebview mIWebview;//记录初始化插件的webview

public void init(IWebview webview, String data) {

mIWebview = webview;

startListenerTask();

}

public void sendMsg(String msg){

System.out.println(msg);

String format = "receiveTest(%s);";//填写接收端的方法

final String js = String.format(format, msg);

mIWebview.getActivity().runOnUiThread(new Runnable() {

@Override

public void run() {

mIWebview.loadUrl("javascript:" + js);

}

});

}

其中init方法把请过来的IWebview webview,记录下来,sendMsg里面就是用缓存了的webview发消息。

在html页面,增加些:

mui.plusReady(function() {

//初始插件调用的webview

plus.plugintest.init('aaaaa');

});

//接收插件传过来的消息

function receiveTest(data){

console.log(data)

}

在plusReady里init里一下插件,后台就可以缓存当前的webview了,receiveTest与String format = "receiveTest(%s);";中的方法是对应的。

这样就行了,以后在java端只用调用 sendMsg方法就可以向这个页面传数据,数据会被receiveTest接收。

上面只是写的一个小测试,能实现数据的传输,进一步改装都不再是问题了

根据这个思路,我感觉 应该还有更简单的传数据方法。

比如说

1、可以不可以在后台通过PandoraEntry直接找到主activity,进而找到app的主html的webview

这样就可以直接向主webview发消息,在主webview做接收就好了。

2、官方push就有接收推送消息的办法,plus.push.addEventListener( "receive", function( msg ) {});怎么样写数据,直接让这个receive能收到消息

如果官方有人看到,麻烦指导一下。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值