4

すでに読んだフォーラムの数はわかりませんが、なぜ機能しないのか本当にわかりません!

iPhone アプリケーションがあり、ユーザーに Epub ブックを表示したいと考えています。

ユーザーはそれをオンラインで読むことができます。それ以外の場合は、Application Documents ディレクトリにダウンロードして後で読むことができます。

このフォルダ構成をオンライン版と同じように構築し、ドキュメントフォルダ「frontend」に保存しました。

私もこの管理されている .HTML ファイルを読むことができますが、リンクされた JS / CSS および HTML ファイルは機能しません。

だから私はいくつかのスクリーンショットを持っています。javascript が .html ドキュメントにアクセスできない理由がわかりません。

オフライン バージョン - ファイル システムの「ドキュメント フォルダ」に保存されます

オンライン版 - サーバーから直接 - 大丈夫です!

ヒントをいただければ幸いです。

4

2 に答える 2

4

いじり回して多くの回答を読んだ後、これが私の簡単な統合ソリューションです。

1) すべてのバンドル リソースが一意であることを確認してください。ディレクトリはフラット化されます。

非常にイライラしますが、ディレクトリ「About/index.html」と「Home/index.html」がある場合、バンドルにコピーされる最後の「index.html」の 1 つが前のものを上書きします。

2) JavaScript ファイルが間違ったビルド フェーズにある

Xcode でプロジェクトをクリックし、アプリ ターゲットをクリックしてから、[ビルド フェーズ] をクリックします。JavaScript ファイルが間違ってコンパイル済みソースにあることに注意してください: JS ファイルを Copy Bundle Resources に移動します。

3) UIWebView の loadRequest を使用します。

文字列からロードしないでください。代わりに NSURL を使用してください。

NSBundle *mainBundle = [NSBundle mainBundle];
NSURL *url = [mainBundle URLForResource:@"some_page" withExtension:@"html"];
NSURLRequest *urlReq = [NSURLRequest requestWithURL:url];

// Assuming you create an IBOutlet defined like:
// @property (strong, nonatomic) IBOutlet UIWebView *wv;
[self.wv loadRequest:urlReq];
于 2014-02-22T19:46:33.380 に答える
4

コードを書くだけ

NSString *path = [[NSBundle mainBundle] pathForResource:@"offlineEpub" ofType:@"html"];
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
UIWebView *webView = [[UIWebView alloc] init];
[webView loadHTMLString:content baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
[self.view addSubview:webView];

主なことは、mainBundle またはドキュメント ディレクトリとしてベース URL を提供することです。

于 2013-03-11T18:13:08.073 に答える