简体中文
主题
简体中文
主题
相关参考:
宿主页面如果覆盖了自己的按钮、提示层或引导层,有时会挡住 iframe 内部的点击。此时可以把宿主层的点击坐标“转发”给场景。
当前高级 API 提供的方法是:
await api.dispatchTouchEvent(x, y);overlay.addEventListener('click', async (event) => {
await api.dispatchTouchEvent(event.clientX, event.clientY);
});注意:x和y应该是iframe中的坐标值,而不是宿主页面中的坐标值。
如果overlay和iframe刚好大小一致,位置一致,则直接传递即可。否则需要进行坐标系变化计算。
dispatchTouchEvent() 会:
所以你传入的应该是iframe内部页面坐标,而不是宿主页面坐标。
通常会搭配 api.on('click', ...) 一起使用:
const target = await api.getObject('rabbit');
await api.on('click', ({ target }) => {
console.log('内部对象被点击', target);
}, target);x、y 必须是数字如果只是做少量自定义按钮,优先让按钮避开关键交互区域;只有在确实需要宿主接管点击链路时,再使用 dispatchTouchEvent()。