私はあなたの問題を正しく理解していることを願っています:
1)リモートWebページをロードします...そして
2)特定のリモートアセットをアプリ/ビルド内のファイルに置き換えます
右?
さて、私がしていることは次のとおりです(Mobile Safariではキャッシュ制限が5MBであるため、ビデオに使用していますが、他のDOMコンテンツも同様に機能するはずです):
•スタイルタグを使用してローカル(Xcodeでコンパイルされる)HTMLページを作成し、アプリ内/ビルドコンテンツを置換し、非表示に設定します。例:
<div style="display: none;">
<div id="video">
<video width="614" controls webkit-playsinline>
<source src="myvideo.mp4">
</video>
</div>
</div>
•同じファイルでコンテンツdivを指定します。例:
<div id="content"></div>
•(ここでjQueryを使用)リモートサーバーから実際のコンテンツをロードし、ローカル(Xcodeでインポートされたアセット)をターゲットdivに追加します。
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$("#content").load("http://www.yourserver.com/index-test.html", function(){
$("#video").appendTo($(this).find("#destination"));
});
});
</script>
•wwwファイル(index.html / jquery.js /など...テストにルートレベルを使用)をプロジェクトにドロップし、ターゲットに接続します
•リモートHTMLファイル(ここではyourserver.com/index-test.htmlにあります)には、
<base href="http://www.yourserver.com/">
•宛先divと同様に、例えば
<div id="destination"></div>
•最後に、Xcodeプロジェクトで、ローカルHTMLをWebビューにロードします
self.myWebView = [[UIWebView alloc]init];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[self.myWebView loadHTMLString:content baseURL:baseURL];
オフラインキャッシングには、https://github.com/rnapier/RNCachingURLProtocolと組み合わせて使用するのが最適です。お役に立てれば。F