gpt4 book ai didi

ios - iOS WebKit-DataCloneError:无法克隆对象

转载 作者:行者123 更新时间:2023-12-01 19:43:58 47 4
gpt4 key购买 nike

当使用iOS WebKit的WKWebView时,尝试以类似以下代码的方式将postMessage回到我的WKScriptMessageHandler时遇到错误

window.webkit.messageHandlers.thisHandler.postMessage(message);

其中message是一个Javascript对象(或在iOS开发人员看来是字典),错误是:
WKJavaScriptExceptionMessage=DataCloneError: The object can not be cloned.

这很令人困惑,我无法在Google上搜索出任何有用的信息。

最佳答案

从我的消息对象中一键删除键值后,我最终发现此错误是由于我错误地将某些Javascript DOM对象而不是其原始值包含在对象中引起的。例如,我包括一些变量

const myVar = document.body.querySelector("div.someClassName")

在我的消息正文中,无法为本地Swift环境克隆。同样, window.location是纯JS DOM对象,也不是可克隆的。要解决此问题,只需获取其原始值并将其包含在消息中,例如
const myVar = document.body.querySelector("div.someClassName").innerText;
const myURL = window.location.href;
const message = {myVar, myURL};
window.webkit.messageHandlers.thisHandler.postMessage(message);

关于ios - iOS WebKit-DataCloneError:无法克隆对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50898630/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com