比如说creator上一个按钮的点击调用安卓原生的方法
急急急!!!
安卓工程怎么打开的游戏项目的?如果是安卓原生app通过webview来打开游戏,那可以和原生app沟通协商好,往window下注入代码来和安卓原生进行通讯。
javascriptbridge
使用场景主要是游戏里面会使用到一些原生的页面,所以需要游戏脚本里面比如点击按钮然后调用安卓这边写好的方法跳转新页面。我在脚本里面直接用window.xxx.xxx()这种方式去执行方法调用,构建web_mobile发布后发现直接就打不开了,一直卡在有个cocos logo下面有个进度条的页面。然后我试了打包成安卓项目,发现安卓项目页面加不进去。新建了页面会报页面找不到的异常。
你好,具体的调用方式是怎么样的。jsb.reflection.callStaticMethod这个吗?
web与安卓原生?web不是浏览器上运行的吗?如果是浏览器上的,那就查浏览器的接口。如果是通过webview打开的,那就参考二楼说的做。
你是把creator构建出来的webview包,然后在creator构建的android包里使用webview显示?是这样的吗?
我是原生内嵌H5,H5是用creator 打包出来的web mobile 在H5中调用原生方法是这么写的
static setupWebViewJavascriptBridge(callback) {
if (window[“WebViewJavascriptBridge”]) {
return callback(WebViewJavascriptBridge)
}
if (window[“WVJBCallbacks”]) {
return window[“WVJBCallbacks”].push(callback)
}
window[“WVJBCallbacks”] = [callback];
let WVJBIframe = document.createElement(“iframe”);
WVJBIframe.style.display = “none”;
WVJBIframe.src = “wvjbscheme://BRIDGE_LOADED”;
document.documentElement.appendChild(WVJBIframe);
setTimeout( () => {
document.documentElement.removeChild(WVJBIframe)
}, 0)
}
//showPage 是方法名
//back 是参数
//responseData是返回数据
setupWebViewJavascriptBridge((bridge) => {
bridge.callHandler(‘showPage’, ‘back’, (responseData) => {
console.log(“showPage back:”, responseData)
})
})
解决了,谢谢。
谢谢 解决了