3

UIWebviewを使用して、ローカルHTMLファイル内で提供されるコンテンツを表示しています。

ただし、問題は、ページが正しく表示されないことです。コアhtmlのみがレンダリングされ、cssスタイルやメディアコンテンツは表示されません。このプロジェクトでは、Web構造全体をそれぞれのフォルダーに配置し、Xcodeプロジェクト内に配置します(すべてのコンテンツは青いフォルダー内に表示されます)。

ビルドされたアプリケーションパッケージにはWebフォルダーが含まれており、すべてのコンテンツが含まれているため、正しく表示されない理由がわかりません。

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">

すべてのフォルダとファイルは正しく、欠落しているものはありません。誰かが私が間違っているかもしれないことを知っていますか?

4

2 に答える 2

2

XCodeはフォルダを使用せず、バンドルのみを使用してすべてのデータを保存します。だから私はあなたに使用することをお勧めします:

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

理解する:

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

cssや他のファイルと同じです。また、ファイルについて話す場合は.js、必ず次のファイルを削除してください。

ターゲット->ビルドフェーズ--->ソースのコンパイル

に追加します

ターゲット->ビルドフェーズ--->バンドルリソースのコピー

プロジェクトXCodeに最初にファイルを追加するとき、.jsどういうわけかそれをコンパイルする必要があると考えているからです。

于 2012-09-25T20:54:30.537 に答える
0

相対参照(つまり、「../[ディレクトリ]/ [ファイル名]」)は正しいですか?

個人的に私はこれらの相対的なソース参照を避け、代わりにルート相対を使用します:すなわち/[ウェブサイトのルートからのディレクトリ]/[ファイル名]

于 2012-07-31T21:02:26.293 に答える