gpt4 book ai didi

javascript - 加载新页面时如何在 WebView 中保留加载的 javascript 内容?

转载 作者:行者123 更新时间:2023-12-03 16:45:45 25 4
gpt4 key购买 nike

在 WebView 中,我可以通过运行 view.stringByEvaluatingJavaScriptFromString 来加载 javascript 代码,或者直接在 JS 上下文中加载代码,您可以通过 view.mainFrame.javaScriptContext 检索。

但是,当我导航到新的 URL(无论是在 WebView.mainFrame 中还是在 Javascript 中,例如通过设置 window.location)时,我的所有 javascript 代码都会丢失,我必须加载它再次。当我在 JS 代码中导航并希望在脚本中继续操作时,这尤其是一个问题。有没有办法避免清除所有 JS,特别是防止停止当前 JS 代码?

最佳答案

事实证明,不可能阻止上下文重新创建。相反,我最终得到了一个独立的 JSContext 实例(手动创建)和一个在该上下文中设置为变量的 WebView 实例。这样您就可以在独立上下文中运行 javascript,但使用 WebView 来完成所有 Web 工作。最大的缺点是,您不能简单地对 DOM 进行操作,而是必须在上下文中提供操作函数(映射到 WebView 实例),或者为所有将方法发布到 JS 的 WebView 类(DOMDocument 等)创建扩展。这样你就可以直接作用于 swift/obj-c 类。

关于javascript - 加载新页面时如何在 WebView 中保留加载的 javascript 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29989899/

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