如何检查链接是否被WKWebview破坏?

时间:2015-10-26 09:34:51

标签: ios objective-c iphone swift wkwebview

我使用WKWebview加载网址。

let webView = WKWebview()
let request: NSMutableURLRequest = NSMutableURLRequest(URL: url!)
webView.loadRequest(request)

如何检测webView应加载的链接是否已损坏?

4 个答案:

答案 0 :(得分:1)

您可以使用<?php if(isset($_POST['btn_NEXT'])) { mb_internal_encoding("UTF-8"); header('Content-Type: text/html; charset=utf-8'); ini_set('display_errors', true); include('/Fpdf(1.7)Extracted/fpdf.php'); include('/Fpdi(1.6)Extracted/fpdi.php'); $con=mysql_connect('localhost','root') or die('Error'); mysql_select_db('DbName'); $pdf =& new FPDI(); // add a page $pdf->AddPage(); // set the sourcefile $pdf->setSourceFile('Demo_Marathi2.pdf'); // import page 1 $tplIdx = $pdf->importPage(1); // use the imported page as the template $pdf->useTemplate($tplIdx, 0, 0, 0, 0, true); $cmd = "select * from Demo_hindi"; $result = mysql_query($cmd); while ($myrow = mysql_fetch_assoc($result)) { } //$pdf->Text(105, 73, $myrow['DemoHindi']['demo_Values']); //$pdf->Text(105, 73,$result); //$pdf->Write(65,$myrow['DemoHindi']); //$pdf->Write(73,$myrow['demo_Values']); $pdf->Write(73, "".$result); echo"".$pdf->Output('newpdf.pdf', 'D'); //PDF CREATION CODE enchant_dict_suggest(dict, word) ob_end_clean(); } 方法:

canOpenUrl

它将执行url验证,如果链接正常,则返回true。 在你打电话之前,它主要用于:

UIApplication.sharedApplication().canOpenURL(url)

确保此链接可以在Safari中打开,但它也可以帮助您。

确保链接以http://或https://。

开头

编辑:

只需检查链接是否是正确的网址。

如果您希望看到该页面处于脱机状态,授权问题等,您可以实施UIApplication.sharedApplication().openURL(url) 协议并查看此方法:

WKNavigationDelegate

这应该会为您提供更多信息。

使用:- webView:didFailNavigation:withError: 始终是个好主意 它确保您不传递URL中不允许的字符。

编辑2: 要检测状态代码,您可以尝试实现:

str.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAl‌​lowedCharacterSet())!

导航响应是- webView:decidePolicyForNavigationResponse:decisionHandler: 实例但是 无论何时发出HTTP请求,您获得的NSURLResponse对象实际上都是NSURLResponse类的实例,因此您应该将其强制转换为NSHTTPURLResponse。这应该给你一个NSHTTPURLResponse。 在方法的最后一行中,您应该调用handler,例如statusCode

答案 1 :(得分:0)

如果你想检查url字符串是否正确和有效 - 只需创建NSURL对象,如果path包含错误,它将转换为nil

let string = "http://google.com"
let url = NSURL(string: string)

let brokenString = "http:\\brokenurl.12"
let brokenUrl = NSURL(string: brokenString) // nil - it's not valid!

答案 2 :(得分:0)

参考:Answer exists here

if let url = NSURL(string: yourUrlString) {
    var canOpen = UIApplication.sharedApplication().canOpenURL(url)
 }

答案 3 :(得分:0)

如果您已实现NSURLConnectionDelegate,则可以使用以下解决方案。

可以使用 NSURLConnectionDelegate

didFailWithError 方法。

如果在资源加载期间发生错误,则调用此方法。

可以参考下面的链接 https://developer.apple.com/documentation/foundation/nsurlconnectiondelegate/1418443-connection