特に最後のヤツが困ったのでメモ。

CocoaのWebViewでは、単純に上記をJSで実行しても出力されないので、実装してやる必要がある。

まず、下準備として

#import <WebKit/WebKit.h>

しとく。WebView使うためには必須みたいですな。

そして、xibファイルを開いてWebViewのOutletsにあるUIDelegateをdelegate先のクラスに
繋いでおく。ガチャっと。

まずはalert()とconfirm()。
delegate先のクラスに

- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame
{
    NSRunAlertPanel(@"alert", message, @"OK", nil, nil);
}

- (BOOL)webView:(WebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame
{
    NSInteger result = NSRunAlertPanel(@"confirm", message, @"OK", @"Cancel", nil);
    if (result == NSAlertDefaultReturn) {
        return YES;
    }
    return NO;
}

を書いておけばOK。
メッセージ拾ってAlertPanelを出すだけですな。
上記2つのメソッドはすぐ見つかった。

console.log()は、最終的にやること自体は同じなのだが、メソッドが見つからなかった。。
(探す場所が悪かったのか非推奨なのか、その辺よくわからないのでご容赦くださいm(__)m

Google先生のご指導の元、下記のメソッドを書くことで解決。
これでconsole.xxx()のerrとかwarnとかも全部拾える。

- (void) webView:(WebView*)webView addMessageToConsole:(NSDictionary*)message
{
    NSLog(@"%@", message);
}

messageはDictionaryなので、中身は必要に応じてテキトーに。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Name *
Email *
Website

*