相关疑难解决方法(0)

WKWebView无法在iOS 8下加载本地文件

对于以前的iOS测试版8,负荷(束)本地web应用程序,它都为正常工作UIWebView和WKWebView,我甚至移植使用新的网页游戏WKWebViewAPI.

var url = NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("car", ofType:"html"))

webView = WKWebView(frame:view.frame)
webView!.loadRequest(NSURLRequest(URL:url))

view.addSubview(webView)
Run Code Online (Sandbox Code Playgroud)

但在测试版4中,我只是得到了一个空白的白色屏幕(UIWebView仍在工作),看起来没有任何内容被加载或执行.我在日志中看到一个错误:

无法为其创建沙箱扩展 /

有没有帮助引导我走向正确的方向?谢谢!

ios swift ios8 wkwebview

119
推荐指数
6
解决办法
7万
查看次数

将文件从本地文件系统加载到从file:// URL提供的WKWebView网站

如果我在这个问题中遗漏了任何相关信息,请提前道歉:我不是网络开发人员,所以我不确定究竟需要哪些信息来解决我的问题.

我有一个WKWebView加载一个本地服务的网站,使用大致相似的代码(省略了一些涉及管理器的细节,我认为这与此问题无关).

  WKWebViewConfiguration *webViewConfiguration = [[WKWebViewConfiguration alloc] init];
  WebViewManager *manager = [[WebViewManager alloc] init];
  webViewConfiguration.userContentController = manager;
  WKWebView *aWebView = [[WKWebView alloc] initWithFrame:self.view.bounds
                                           configuration:webViewConfiguration];
  [aWebView loadRequest:[NSURLRequest requestWithURL:aUrl]];
  [aWebView setNavigationDelegate:manager];
Run Code Online (Sandbox Code Playgroud)

该网站的HTML文件存储在App的捆绑包(file://URL)中,并且需要能够访问存储在捆绑包中相同目录中的各种图像,CSS文件,JS文件和其他资源(有亲戚)我相信HTML中的URL用于此目的.

我现在需要能够从App的共享容器中提供图像(通过containerURLForSecurityApplicationGroupIdentifier:方法访问NSFileManager).

但是,我提供的URL不起作用.当我在Safari调试器中查看页面时,我看到一些涉及加载文件的jQuery代码中引发异常.

我已经调查了一些可能的解决方法,但没有一个解决了我的问题:

新loadFileURL:allowingReadAccessToURL:方法似乎正是我所需要的,但是,将readAccessURL参数设置到我的共享安全容器中的文件夹打破了网站 - 实际上,它甚至看起来不像HTML文件本身正确加载,因为它们都没有Safari调试程序中的正确名称.作为测试,我将URL设置为包含HTML页面的目录包中的URL,并得到了不同的错误.

另一位开发人员建议我们将每个图像从包外转换为base64编码的字符串,并通过Javascript将其传递到网站,但这对我来说似乎非常低效,所以我希望避免这种结果.

最后,我在其他地方读过,将文件复制到tmp/www应用程序目录中可以解决iOS 8上类似的问题.所以我想知道是否将所有内容复制到同一个目录(在bundle之外,当然是只读的)可能会解决这个问题.然而,这似乎也非常低效.

如何将包内和共享应用程序容器中的文件加载到我的Web视图中?

ios wkwebview

13
推荐指数
0
解决办法
2338
查看次数

标签 统计

ios ×2

wkwebview ×2

ios8 ×1

swift ×1