2011-07-26 10 views
10

これはiOS上で動作させるためのコードがあります。ここで私が見つけたものを使って、Web上で私はどこでもCocoa Mac OSバージョンを作ることができましたが、イメージは読み込まれません。 CSSとJavascriptが読み込まれていないようです。 HTMLのディレクトリはResourcesグループに追加されていますが、XcodeがHTML Appのディレクトリ構造を尊重するようにするFolder References(青いフォルダ)として追加されています。WebView Cocoa/Mac OSで画像、js、cssを使ってローカルhtmlファイルを読み込む方法

ここで私が使用しようとしているコードです:

NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"index" 
                ofType:@"html" 
               inDirectory:@"/Patient_eMMR_HTML5" ]; 
NSString *html = [NSString stringWithContentsOfFile:htmlPath 
              encoding:NSUTF8StringEncoding 
               error:nil]; 

[[webView mainFrame] loadHTMLString:html baseURL:[NSURL fileURLWithPath: 
                [NSString stringWithFormat:@"%@/Patient_eMMR_HTML5/", 
                [[NSBundle mainBundle] bundlePath]]]]; 

これは私が上記の使用のコードをベースとそこからコードのiOSのバージョンである:すべてのヘルプは非常にある

NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"index" 
                ofType:@"html" 
               inDirectory:@"/Patient_eMMR_HTML5" ]; 

NSString *html = [NSString stringWithContentsOfFile:htmlPath 
              encoding:NSUTF8StringEncoding 
               error:nil]; 

[webView loadHTMLString:html 
       baseURL:[NSURL fileURLWithPath: 
         [NSString stringWithFormat:@"%@/Patient_eMMR_HTML5/", 
          [[NSBundle mainBundle] bundlePath]]]]; 

感謝。ありがとう。あなただけ‑pathForResource:…方法でディレクトリ名を指定する必要があり

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"index" 
                ofType:@"html" 
               inDirectory:@"Patient_eMMR_HTML5"]; 
NSURL* fileURL = [NSURL fileURLWithPath:filePath]; 
NSURLRequest* request = [NSURLRequest requestWithURL:fileURL]; 
[[webView mainFrame] loadRequest:request]; 

注意、ドン」:

答えて

14

あなたはNSURLRequest経由ではなく文字列としてHTMLを読み込む場合は、ベースURLを用いて約マックする必要はありませんそれにスラッシュをつけます。指定されたディレクトリがメインバンドルのディレクトリにあると仮定します。

UIWebViewにも‑loadRequest:メソッドがあるので、iOSでほぼ同じコードを使用できます。

+0

ありがとうRob、それはうまくいきました。私はまだキャンバスが描かれていない問題があります。私はSafariを開く愚かなリンクをしているので、私はすべてを再テストすることができないので、この時点でこのアプローチを使用するつもりはありませんが、私はこれを学びたいと思っていました。再度、感謝します。 – HotFudgeSunday

+0

Canvasが行っている限り、WebViewではJavaScriptが有効になっていますか? –

+0

まあ、私は何も有効にしていないか、何かを無効にしていません。コードはまさにあなたが私に与えたものです。それでも、Javascriptを使って解雇されることはたくさんあります。それは失敗するように見えるだけのキャンバスです。私はプログラム的に作成され、働いているいくつかのCSSアニメーションを持っています。私はこれを検索します。 – HotFudgeSunday

1

mserin、この質問は、Mac OS X用のCocoa Frameworkに向けられています。あなたはUIKit for Cocoa Touchの一部であるUIWebViewを使用しています。

:あなたがMacは我々がここで使っているが、あなたは、このようなWebKitのフレームワークを含める必要があり、コードを使用して、このFONをやろうとしている場合、あなたは、iPhone/iPadのためにこれを構築するために should look at this post.

をしようとしている場合

#import <WebKit/WebKit.h> 

そしてサブクラスのWebView、ないのUIWebView:このような特性を有する

WebView *webView; 

@property (nonatomic, retain) IBOutlet WebView *webView; 
3

これはMac OSXのresourceURLで私のために働いた

[webView loadHTMLString:htmlContent baseURL:[[NSBundle mainBundle] resourceURL]] 
+0

ちょうど私が必要なもの、ありがとう!これはSwift 4にあります: 'webView.mainFrame.loadHTMLString(html、baseURL:Bundle.main.resourceURL!)' –

関連する問題