1

AppDelegate.mファイルに次のコードがあり、アプリを開くとGoogleが開きます。Xcodeプロジェクトにコピーした.HTMLWebページを開くように変更しようとしていますが、機能しません。Xcode4.5.2を使用しています。

Googleを開くために機能するコードは次のとおりです。

@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(最終的なアプリバンドルにもコピーされていることを確認してください。ビルドフェーズを確認してください)、次のコードを使用して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 に答える