打包H5,ts和java互调

  • Creator 版本:3.5.2
    打包成h5后,嵌入到其他app里面,ts和这个app的java要怎么互调?
    用jsb.reflection.callStaticMethod和jsb.bridge.onNative,sendToNative试过了,但是都没调通。
    需要做什么其他的操作吗?

问你们安卓的同事即可,他们在webview里给JS runtime注入代码来实现通信

creator这边什么都不用做吗?
调用java的函数要怎么写呢?不可能跟咱们平常写ts那样直接调吧

要啊
下面都是伪代码,具体你们自己定
java调js,你定义一个函数window.callME = function (){},java调runtime.call(“window.callME”)
js调java,java先注入函数runtime.inject(“window.callJava”, this.jsCallMe), 你调window.callJava(xxx)

VUHD{GCV)P~SZB)1
这样就可以和java互调了?

剩下的自己研究了,重点已经告诉你了

看你的描述,你应该是用Android的webview打包,正好我最近也是这么干的。
一:Android调用js
webview.loadUrl(“javascript:xxx()”);
xxx就是js里面的全局方法,例如window.xxx=function(){};
二:js调用Android
①Android要先定义一个js对象
webview.addJavascriptInterface(this,“android”);
其中android就是供js调用的对象。
在this当前类定义方法
@JavascriptInterface
public void callAndroid(String url){
//url就是js的传参
}
②js访问android对象
android&&android.callAndroid(‘https://cocos.org/’);

注意:webview要做如下设置
WebSettings websettings=webview.getSettings();
websettings.setJavaScriptEnabled(true);

1赞

这一段是java层写的是吧?

你光看语法就知道是java代码了。

jsb是给打包成安卓工程用的, 你打包成h5是应该是跑在安卓的webview里面, 这个时候你就得去看一下安卓的webview相关文档。

https://developer.android.google.cn/guide/webapps/webview?hl=zh-cn#UsingJavaScript