ios - WKWebView错误: "The requested URL was not found on this server"

标签 ios swift wkwebview xcode7-beta3

在 Xcode 7 beta3 中

当我使用object-c时没问题,但是当我使用swift时出现错误:“在该服务器上找不到请求的URL”,为什么?

这里是代码:

#import "ViewController.h"
#import <WebKit/WebKit.h>


@interface ViewController ()

    @property(strong,nonatomic) WKWebView *webView;

@end

@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *url = [NSURL URLWithString:@"http://www.apple.com"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    _webView = [[WKWebView alloc] initWithFrame:self.view.frame];
    [_webView loadRequest:request];
    [self.view addSubview:_webView];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end 


swift:

import UIKit
import WebKit

class ViewController: UIViewController,WKNavigationDelegate {

    var webview: WKWebView?

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        webview = WKWebView(frame: self.view.frame)
        self.webview!.navigationDelegate = self
        let req = NSURLRequest( URL: NSURL( fileURLWithPath: "http://www.apple.com"))
        webview?.loadRequest(req)
        self.view.addSubview(webview!)
    }

    // MARK: WKNavigationDelegate
    func webView(webView: WKWebView, didCommitNavigation navigation: WKNavigation!) {
        NSLog("commit")
    }

    func webView(webView: WKWebView, didFailNavigation navigation: WKNavigation!, withError error: NSError) {
        NSLog("err: " + error.localizedDescription)
    }

    func webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) {
        NSLog("err2: " + error.localizedDescription)
    }

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
        NSLog("finish")
    }

    func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
        NSLog("start")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

最佳答案

使用此代码:

let req = NSURLRequest(URL: NSURL(string: "http://www.apple.com")!)

而不是这个:

let req = NSURLRequest( URL: NSURL( fileURLWithPath: "http://www.apple.com"))

它会工作得很好。

关于ios - WKWebView错误: "The requested URL was not found on this server",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31737880/

相关文章:

ios - 什么是 PBItemCollectionServicer?

ios - UISharedApplication keywindow 返回 nil

ios - 无法从生成的 QRCode 中获取信息

ios - MapBox 安装问题

ios - 加载本 map 片到 WKWebView

ios - 是否可以更改 UITextView 和 UITextField 中单个单词的颜色

ios - 从 iPhone 模拟器中删除 Charles SSL 根证书

ios - 导致 "Cannot pass immutable as inout"的 Swift 3 转换

ios - 加速 loadHTMLString-d 内容的 WKWebView 呈现的策略?

swift - 处理苹果引用文档 ://url scheme in web view