Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift从Webview检索HTML数据_Html_Ios_Swift_Uiwebview - Fatal编程技术网

Swift从Webview检索HTML数据

Swift从Webview检索HTML数据,html,ios,swift,uiwebview,Html,Ios,Swift,Uiwebview,我试图获取在UIWebView中显示的网页标题中的数据 如何从UIWebView获取原始(未格式化)HTML字符串 另外,我使用的是iOS9 我的问题类似于,但这篇文章是6年前写的 关于您链接的问题: NSString *html = [yourWebView stringByEvaluatingJavaScriptFromString: @"document.body.innerHTML"]; 将转化为Swift:

我试图获取在UIWebView中显示的网页标题中的数据

如何从UIWebView获取原始(未格式化)HTML字符串

另外,我使用的是iOS9

我的问题类似于,但这篇文章是6年前写的

关于您链接的问题:

NSString *html = [yourWebView stringByEvaluatingJavaScriptFromString: 
                                     @"document.body.innerHTML"];
将转化为Swift:

let html = yourWebView.stringByEvaluatingJavaScriptFromString("document.body.innerHTML")
stringByEvaluatingJavaScriptFromString
返回一个可选值,因此您可能希望稍后使用
if let
语句:

if let page = html {
    // Do stuff with the now unwrapped "page" string
}
从您链接的问题的列表中:

NSString *html = [yourWebView stringByEvaluatingJavaScriptFromString: 
                                     @"document.body.innerHTML"];
将转化为Swift:

let html = yourWebView.stringByEvaluatingJavaScriptFromString("document.body.innerHTML")
stringByEvaluatingJavaScriptFromString
返回一个可选值,因此您可能希望稍后使用
if let
语句:

if let page = html {
    // Do stuff with the now unwrapped "page" string
}
swift 4:

if let html = self.webView.stringByEvaluatingJavaScript(from: "document.body.innerHTML"){

}
swift 4:

if let html = self.webView.stringByEvaluatingJavaScript(from: "document.body.innerHTML"){

}

不要忘记在页面渲染完成时获取html,如果过早获取html,结果将为空

func webViewDidFinishLoad(webView: UIWebView) {
     print("pageDidFinished")
     if let html = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.outerHTML") {
             print("html=[\(html)]")
      }

}

不要忘记在页面渲染完成时获取html,如果过早获取html,结果将为空

func webViewDidFinishLoad(webView: UIWebView) {
     print("pageDidFinished")
     if let html = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.outerHTML") {
             print("html=[\(html)]")
      }

}

好的,我确实使用翻译后的swift代码获得HTML代码,但是在我在web视图中提交表单之后,我尝试使用相同的代码获得HTML代码。它仍然显示与上一页相同的HTML代码。你知道可能是什么问题吗?我还尝试了webView.reload(),但它仍然没有改变,只要您在调用函数之前等待页面,并且您使用的是相同的web视图,它应该可以工作。好的,我确实使用翻译后的swift代码获取HTML代码,但在我在web视图中提交表单后,我尝试使用相同的代码获取HTML代码。它仍然显示与上一页相同的HTML代码。你知道可能是什么问题吗?我还尝试了webView.reload(),但它仍然没有改变,只要您在调用函数之前等待页面,并且您使用的是相同的web视图,它就应该可以工作。