Xcode - UIWebview 不显示 CSS、Javascript 或外部内容

Posted

技术标签:

【中文标题】Xcode - UIWebview 不显示 CSS、Javascript 或外部内容【英文标题】:Xcode - UIWebview not displaying CSS, Javascript or external content 【发布时间】:2012-07-24 10:29:08 【问题描述】:

我正在使用 UIWebview 来显示本地 html 文件中提供的内容。

但是问题是页面没有正确显示,只有核心 html 被渲染,没有显示 css 样式或媒体内容。对于这个项目,我将整个 web 结构放在它们各自的文件夹中,并放在 Xcode 项目中(所有内容都显示在蓝色文件夹中)。

构建的应用程序包包含 web 文件夹,所有内容都在那里,所以我不确定为什么它不能正确显示。

这是我用来加载和显示网页的代码:

NSString *html = [[NSString alloc]initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"www/content/island-1" ofType:@"html"] encoding:NSUTF8StringEncoding error:NULL];


NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:html baseURL:baseURL];

在 html 文件中,以下是对某些内容的代码引用:

<script type="text/javascript" src="../static/js/custom-event.js"></script>

<script type="text/javascript" src="../static/js/touch-source/Browser/Features.Touch.js"></script>

<link rel="stylesheet" href="../static/css/islands_popup.css">
<link rel="stylesheet" href="../static/css/content.css">

所有文件夹和文件均正确无误,没有丢失。有谁知道我可能做错了什么?

【问题讨论】:

请将您的 .js 和 .css 文件添加到您的项目文件夹中 【参考方案1】:

XCode 不使用文件夹,它只使用它的包来存储所有数据。所以我建议你使用:

 <script type="text/javascript" src="custom-event.js"></script>  

实例:

<script type="text/javascript" src="../static/js/custom-event.js"></script>.

与您的 css 和其他文件相同。 此外,如果我们谈论.js 文件,请务必从以下位置删除文件::

目标-->构建阶段--->编译源

并添加到

目标-->构建阶段--->复制捆绑资源

因为当你第一次将.js 文件添加到项目时,XCode 不知何故认为它需要编译。

【讨论】:

【参考方案2】:

您的相对引用(即“../[目录]/[文件名]”)是否正确?

我个人避免使用这些相对源引用,而是使用根相对:即 /[网站根目录]/[文件名]

【讨论】:

以上是关于Xcode - UIWebview 不显示 CSS、Javascript 或外部内容的主要内容,如果未能解决你的问题,请参考以下文章

在 UIWebView 中使用本地 CSS 文件

UIWebView 加载但不显示网站 (XCode 4, iOS SDK 4.3)

迁移到 Xcode 7 后 UIAlertView 和 UIWebView 不起作用

HTML 不尊重 UIWebView 中的 .CSS 文件

删除 UIWebView 选择突出显示?

无法让 UIWebView 在 Xcode 中播放 .mp4