WKWebView 加载使用 sea.js 和 avalon 的本地 html5 项目

Posted

技术标签:

【中文标题】WKWebView 加载使用 sea.js 和 avalon 的本地 html5 项目【英文标题】:WKWebView load local html5 project which use sea.js and avalon 【发布时间】:2016-09-14 06:12:44 【问题描述】:

当我通过 WKWebView 加载本地 html5 项目时,它无法工作。我使用 Safari 检查器检查错误。它列出了这样的错误:

"XMLHttpRequest cannot load  file:///Users....avalon/avalon.me.html. Cross origin requests are only supported for HTTP."

我在下面尝试了这些方法,但它们也无法正常工作。

当我将 html5 添加到我的应用程序项目中时,我选择了“创建文件夹引用”项。我已经尝试将 html5 文件添加到一个包中。或者将它们复制到文档路径。它也不起作用。我认为它没有路径问题。

我已经尝试过这些方式来加载 html5 文件:

[self.webview loadHTMLString:appHtml baseURL:baseURL];
[self.webview loadRequest:request];
[self.webview loadFileURL:indexurl allowingReadAccessToURL:indexurl];

如果我从本地服务器加载 html5 文件,它会成功。我尝试了一个不使用 sea.js 和 avalon 的简单 html5 项目,它也可以成功。我使用 UIwebView 替换 WKWebView,它是好的!

我已经在这个问题上搜索了一些解决方案,但我没有找到答案。 WKWebView 是否不支持加载本地 html,例如“file:///Users...”? 这个问题有解决办法吗?

你能帮帮我吗?

【问题讨论】:

【参考方案1】:

我看到您正在尝试从本地计算机 (file:///...) 加载资产。无法从本地机器加载 XHR 请求。您需要设置一个开发服务器/环境来正确测试您的 XHR 请求。

【讨论】:

我从 localhost 服务器加载 html 没问题。我已经搜索过这个问题,有人说这是一个 ios 问题。我不确定。

以上是关于WKWebView 加载使用 sea.js 和 avalon 的本地 html5 项目的主要内容,如果未能解决你的问题,请参考以下文章

sea.js与require.js的区别

require.js与sea.js的区别

Require.js与Sea.js的区别

Seajs是什么及sea.js 由来,特点以及优势

sea.js模块化工具

WKWebView使用