如何使用evaluateJavaScript 将数据从WKWebview 发送到HTML 文件| iOS | Objective-C

Posted

技术标签:

【中文标题】如何使用evaluateJavaScript 将数据从WKWebview 发送到HTML 文件| iOS | Objective-C【英文标题】:How to send data from WKWebview to HTML file using evaluateJavaScript | iOS | Objective-C 【发布时间】:2020-04-01 13:06:22 【问题描述】:

我需要将某些值从 WKWebview 传递给我的 html

这是我已经尝试过的代码片段。

 [self.webView evaluatejavascript:@"document.getElementById('popo_data').innerHTML = feed,OMG,BTC;" completionHandler:^(NSString *result, NSError *error) 
         if(error != nil) 
             NSLog(@"######## SomeFunction Error: %@",error);
             return;
         

         NSLog(@"########  SomeFunction Success");
     ];

【问题讨论】:

【参考方案1】:

这看起来不像是格式正确的 JavaScript,因为您分配给 #popo_data 元素的字符串周围缺少引号。我想你在这里遇到了语法错误。

尝试以下方法: document.getElementById('popo_data').innerHTML = "feed,OMG,BTC"

如果这不起作用,您可以通过将调试器连接到您的设备或模拟器来使用 Safari 调试您的 webview。 Safari 首选项 > 选中“在菜单栏中显示开发菜单”。

【讨论】:

WKJavaScriptExceptionMessage=TypeError: null is not an object (evalating 'document.getElementById('popo_data').innerHTML = 'feed,OMG,BTC' '),尝试您的代码时出现此错误。 那么这很可能是在评估时,Web 文档中没有带有id="popo_data" 的 HTML 元素。

以上是关于如何使用evaluateJavaScript 将数据从WKWebview 发送到HTML 文件| iOS | Objective-C的主要内容,如果未能解决你的问题,请参考以下文章

使用 evaluateJavascript 处理来自 Android WebView 的 Promise

使用 EvaluateJavaScript 单击按钮的意外行为

使用 evaluateJavaScript 从 WKWebView 获取标题

WKWebView 中的 Javascript - evaluateJavaScript 与 addUserScript

使用 evaluateJavascript 方法在 Cordova 的 WKWebview 上设置本地图像

WKWebView evaluateJavaScript 不返回 html