我有代码可以在iOS上运行。使用我在这里和网络上找到的任何东西,我设法在某个地方制作Cocoa Mac Os版本,但图像不会加载。 CSS和Javascript似乎也没有加载。 HTML的目录被添加到Resources组,但它被添加为Folder References(蓝色文件夹),这使得Xcode尊重HTML App的目录结构。
这是我正在尝试使用的代码:
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]]]];
非常感谢任何帮助。感谢。
答案 0 :(得分:14)
如果您通过NSURLRequest
而不是字符串加载HTML,则无需使用基本URL:
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];
请注意,您应仅在‑pathForResource:…
方法中指定目录名称,不要在其前面添加正斜杠。假设命名目录以root包的目录为根。
请注意,UIWebView
也有‑loadRequest:
方法,因此您可以在iOS上使用几乎相同的代码。
答案 1 :(得分:3)
这适用于Mac OSX上的resourceURL
[webView loadHTMLString:htmlContent baseURL:[[NSBundle mainBundle] resourceURL]]
答案 2 :(得分:1)
mserin,这个问题是针对Mac OS X的Cocoa Framework。您正在使用UIWebView,它是UIKit for Cocoa Touch的一部分。如果您正在尝试为iPhone / iPad构建此版本should look at this post.
如果你想尝试这样做,那么使用我们在这里使用的代码但是你需要包含这样的WebKit框架:
#import <WebKit/WebKit.h>
然后继承WebView,而不是UIWebView:
WebView *webView;
有这样的属性:
@property (nonatomic, retain) IBOutlet WebView *webView;