【问题标题】:Change HTML in webview with Swift使用 Swift 在 webview 中更改 HTML
【发布时间】:2020-11-09 02:43:30
【问题描述】:

我需要在项目中托管的 web 视图中动态更改大约 10 个 HTML 字母。这似乎应该很简单。我实际上只需要在我的项目中的 .html 文件中更改大约 10 个字符。

似乎让这变得如此困难的是,我需要在页面开始加载到 wkwebview 之前完成它。有问题的字符位于小部件使用的<script> 标记内。显然,小部件对脚本中的任何字符在开始加载后发生更改都不满意。这是我在加载 wkwebview 后尝试使用 JavaScript 更改字符后得出的结论。

如何在 webview 开始加载之前更改 10 个字符?

我在想,也许我可以在将 html 文件公开到 Internet 之前更改它……但我不知道该怎么做。或者也许我可以在更改 HTML 后重新加载包含小部件的 div ..但我认为它会恢复为默认值。

这是一个基本的 page.html 文件:

<html>
<body>
<head>
<script>
setName(param) {
  var myelement = document.getElementById("name");
        myelement.innerHTML= param;
}
</script>
</head>
<body>
<div class="widget-container">
  <div id="widget-dest"></div>
  <script type="text/javascript" src="https://s3._/widget.js"></script>
  <script type="text/javascript">
  new widget(
  {
 
  "symbol": "omar sharif",//THIS IS THE PARAMETER I NEED TO CHANGE..<span id=name></span> would go here but JS NOT WORKING
  "timezone": "Etc/UTC",
  "locale": "en"
}
  );
  </script>
</div>
</body>
</html>

我正在打开这个 html 文件

var webView = WKWebView()
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
webView.uiDelegate = self
if let url = Bundle.main.url(forResource: "page", withExtension: "html") {
webView.loadFileURL(url, allowingReadAccessTo: url.deletingLastPathComponent())
}
}
override func loadView() {
 super.loadView()
 self.view = webView
}
//Unsuccessful effort to set name value with JS in delegate after loading. It can set a value elsewhere on page, but widget won't load when I try to set parameter this way


func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    webView.evaluateJavaScript("setName("John Wayne")", completionHandler: nil)
    }

【问题讨论】:

  • 不能用js来修改你的html文件吗?

标签: javascript html ios swift wkwebview


【解决方案1】:

我不知道它是否对你有帮助。但是你可以在这里查看: https://www.appcoda.com/webkit-framework-tutorial/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多