[解決済み] uiwebviewでローカルのhtmlを使用して相対パスからリソースをロードする
2022-08-08 18:23:07
質問
非常にシンプルなテストページ(test.html)を読み込むuiwebviewを持つ、非常にシンプルなiOSアプリがあります。
<html>
<body>
<img src="img/myimage.png" />
</body>
</html>
このtest.htmlファイルをWebビューに読み込んでいます。
NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"html"];
NSString *html = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSURL *baseUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
[webView loadHTMLString:html baseURL:baseUrl];
これは、相対パスなしで画像を参照し、XCode内のTargets -> Copy Bundle Resourcesのルートパスに参照画像を置くとうまくいきますが、私のhtmlファイルに示されているように相対パスで動作させることができません。 私はウェブビューにロードしたい画像、CSS、JavaScriptファイルがたくさんあり、ルートにすべてを持つ必要はなく、私のウェブアプリですべての参照を変更する必要がないようにしたいのですが、これを行う方法があるはずです。
どのように解決するのですか?
ローカルのhtmlを相対参照で読み込んで使用する方法です。
- リソースをxcodeプロジェクトにドラッグします(私はファインダーウィンドウからwwwという名前のフォルダをドラッグしました)。
- フォルダ参照を作成する..."オプションを選択します。
-
以下のコードを使用してください。それは魅力のように動作するはずです。
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www"]];
[webview loadRequest:[NSURLRequest requestWithURL:url]];
これで、すべての相対リンク(例えばimg/ .gif、js/ .jsのような)相対リンクはすべて解決されるはずです。
スウィフト 3
if let path = Bundle.main.path(forResource: "dados", ofType: "html", inDirectory: "root") {
webView.load( URLRequest(url: URL(fileURLWithPath: path)) )
}
関連
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み] swiftで電子メールアドレスを検証する方法は?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成
-
[解決済み] Swiftで配列に要素を追加する
-
[解決済み] UIWebViewでHTMLとローカル画像を使用する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
iOS classic error Undefined symbols for architecture XXX:
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] Swiftで配列に要素を追加する
-
[解決済み] UIWebViewにローカルのhtmlファイルを読み込む方法