我个人是主要做前端的,最近需要在页面插入godot生成的H5内容,
发现网上的文档对于H5数据交互方面写得不是很详细,
官方的帮助搜出来的更是抽象,
摸了些坑后,算是解决问题了,分享下我自己的解决方法
需要在页面调用godot内容时:
# 创建godot的JavaScript Callback对象
var _onJavascriptCallback = JavaScript.create_callback(self, "_on_js_callback")
# 在页面创建与godot交互的接口
if OS.has_feature("Javascript") or OS.has_feature("HTML5"):
JavaScript.eval("""
网页链接 = 网页链接 Object();
window._setGodotCallback = function(name,callback){
window.godotApi[name] = callback
}
""")
# 绑定godot方法到页面js
JavaScript.get_interface("_setGodotCallback").call("godotApi","godotDoSomething",_onJavascriptCallback)
实际执行的godot方法,注意参数args不能省,不然页面调用不了
# args相当于js的arguments
func _onJavascriptCallback(args):
# 可以选择传信号到MainScene 以便使用其他节点的内容
emit_signal("Javascirpt_Signal")
页面调用godotApi对象下的方法就行
godot调用页面js时:
直接JavaScript.eval,将参数转为字符串传入即可
发现网上的文档对于H5数据交互方面写得不是很详细,
官方的帮助搜出来的更是抽象,
摸了些坑后,算是解决问题了,分享下我自己的解决方法
需要在页面调用godot内容时:
# 创建godot的JavaScript Callback对象
var _onJavascriptCallback = JavaScript.create_callback(self, "_on_js_callback")
# 在页面创建与godot交互的接口
if OS.has_feature("Javascript") or OS.has_feature("HTML5"):
JavaScript.eval("""
网页链接 = 网页链接 Object();
window._setGodotCallback = function(name,callback){
window.godotApi[name] = callback
}
""")
# 绑定godot方法到页面js
JavaScript.get_interface("_setGodotCallback").call("godotApi","godotDoSomething",_onJavascriptCallback)
实际执行的godot方法,注意参数args不能省,不然页面调用不了
# args相当于js的arguments
func _onJavascriptCallback(args):
# 可以选择传信号到MainScene 以便使用其他节点的内容
emit_signal("Javascirpt_Signal")
页面调用godotApi对象下的方法就行
godot调用页面js时:
直接JavaScript.eval,将参数转为字符串传入即可