WKWebView与本地文件

我正在用本地文件testingWKWebView,该文件在模拟器中工作,但在设备中不起作用

@interface EDPresentationViewController ()<WKNavigationDelegate,WKScriptMessageHandler> @property(nonatomic,strong)WKWebView *webView; @property(nonatomic,strong)EDPresentationController *presentationController; @end @implementation EDPresentationViewController -(void)viewDidLoad { [super viewDidLoad]; self.presentationController = [[EDPresentationController alloc]init]; WKWebViewConfiguration *webConfiguration = [[WKWebViewConfiguration alloc]init]; self.webView = [[WKWebView alloc]initWithFrame:self.view.frame configuration:webConfiguration]; NSURL *presentationFolder = [self.presentationController url]; NSURLRequest *request = [NSURLRequest requestWithURL:presentationFolder]; [self.webView loadRequest:request]; } 

我授予从以下url:

  NSURL *presentationFolder = [self.presentationController url]; 

是好的,因为我testing了与UIWebview相同的代码,并工作!

我总是得到相同的错误:

 Could not create a sandbox extension for '/' 

这不是工作,我想这将在迅速的Objective-C中工作

iOS Webkit不能在设备上工作,但是可以在模拟器上运行

任何想法将不胜感激,谢谢


更新2-12-2014

我发现这可能是iOS 8.1中的一个bug,它可能在8.2中被修复

https://devforums.apple.com/thread/247777?start=25&tstart=0

我已经testing将文件移动到临时文件夹,我没有得到任何错误,但webView只是空的。

我用UIWebViewtesting了相同的代码(临时文件夹),并且工作正常!

另外,我试过这个:

https://stackoverflow.com/a/26054170/426180

正如我可以发现,这是有效的,因为CSS和JavaScript被embedded在HTML中。

尝试XWebView有一个非常小的embedded式http服务器。 它比GCDWebServer小得多。 loadFileURL:allowsReadAccessToURL方法是通过扩展添加的,所以你不知道服务器。

这工作就像一个魅力…

 @interface ViewController () <WKScriptMessageHandler, WKNavigationDelegate> 

 WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; WKUserContentController *controller = [[WKUserContentController alloc] init]; configuration.userContentController = controller; [configuration.preferences setValue:@"TRUE" forKey:@"allowFileAccessFromFileURLs"]; self.webView = [[WKWebView alloc] initWithFrame:[UIScreen mainScreen].bounds configuration:configuration]; self.webView.navigationDelegate = self; // Also if you'd have bouncing problem self.webView.scrollView.bounces = false; self.webView.scrollView.alwaysBounceVertical = false; [self.view addSubview:self.webView]; NSString* productURL = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"htmlapp/home.html"]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:productURL]]; [self.webView loadRequest:request];