1

我在打开我的应用程序时打开 Google 的 AppDelegate.m 文件中有以下代码。我正在尝试更改它以打开我复制到我的 Xcode 项目中的 .HTML 网页,但它无法正常工作。我正在使用 Xcode 4.5.2。

打开谷歌的代码是:

@implementation MDAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]];
    [self.webView.mainFrame loadRequest:request];
}

我尝试将其更改为(以便它加载我放在项目文件夹中的 test.html 文件,但应用程序现在只是空白)。我错过了什么?

@implementation MDAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"test.html"]];
    [self.webView.mainFrame loadRequest:request];
}
4

3 回答 3

2

只要将test.html您的项目复制到项目的根目录(确保它也复制到您的最终应用程序包中,嗯?-检查Build Phases),您就可以使用以下代码将其加载到您的 Web 视图中:

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"];
NSURL* fileURL = [NSURL fileURLWithPath:path];
NSURLRequest* request = [NSURLRequest requestWithURL:fileURL];
[self.webView.mainFrame loadRequest:request];
于 2013-02-12T02:30:45.833 回答
1

[NSURL URLWithString:@"test.html"]没有为您的文件创建有效的 URL。试试看:(它来自一个 iOS 项目,但也应该适用于 OS X 应用程序)。我正在使用loadHTMLString:baseURL:而不是loadRequest:

NSString* fileName = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"html"];
NSString* htmlString = [NSString stringWithContentsOfFile:fileName encoding:NSUTF8StringEncoding error:NULL];
NSURL *baseURL = [[NSBundle mainBundle] bundleURL];
[self.webView loadHTMLString:htmlString baseURL:baseURL];
于 2013-02-12T01:28:44.943 回答
0
[NSURL URLWithString:@"test.html"]

有你的问题。假设您的test.html文件位于应用程序包的资源文件夹中,请改为执行以下操作:

[[NSBundle mainBundle] URLForResource:@"test" withExtension:@"html"];

NSBundle 还有一些其他方法可以轻松创建 URL,以防上面的方法不合适(比如文件在子目录中)。查看NSBundle 参考页面了解更多信息。

于 2013-02-12T02:06:58.043 回答