我使用 UniWebView 作为 Unity 的 UI。我需要发送触摸事件来修改 3D 资源。 Uniwebview 的消息传递是通过 URL 格式完成的,因此必须是字符串。
当我尝试使用 JSON.stringify()
发送触摸事件时,它仅发送 {isTrusted: true}
。我已经经历了this question中的一切没有运气。 second 中的功能和 third答案返回相同的结果,只是 isTrusted
对象。
在最上面的答案中,作者明确指出您不应删除所有 DOM 引用,但在我的用例中,我认为这是完全可以接受的。
我怎样才能做到这一点?
如果它能自动执行(检测它是否是 DOM 元素(“循环引用”)),那就太好了,但我想我也可以手动过滤以下键:
- changedTouches[x].target
- 当前目标
- 路径[]
- src元素
- 目标
- targetTouches[x].target
- 触摸[x].目标
- 查看
我找到了this question用于递归地循环访问对象,但注释暗示循环引用可能会导致溢出。最重要的是,我不确定如何“重建”该对象。
如有任何帮助,我们将不胜感激。
最佳答案
不是解决方案,但暂时我只是检索触摸:
function getTouches(e) {
let touches = e.touches;
let output = [];
for (let i = 0; i < touches.length; i++) {
let touch = {
clientX: touches[i].clientX,
clientY: touches[i].clientY
};
output.push(touch);
}
return output;
}
关于javascript - 如何将 touchevent 字符串化,忽略任何 DOM 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45888285/