1

WebKit のドキュメントを読むと、組み込みブラウザーで Javascript を直接評価できることがわかりました。すごい!これは、ネイティブ OSX アプリから Web サイトへのメッセージの受け渡しを処理します。

ただし、Javascript からメッセージを渡して、OSX アプリケーションのコードをトリガーできるようにする必要もあります。iPhone UIWebViewでこれを行う方法を知っています: UIWebViewDelegate クラスを実装してから、次のようなメソッドを実装します。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
     // Examine the request object and do whatever needs be done
     return NO;
}

偶然にも、他のユーザーが iOS 向けにこのソリューションを思いついたことがわかりました。ただし、OSX WebKit フレームワーク (たとえば、Frame Load Delegate内) には同等のメソッドがありません。

Javascript から OSX アプリにメッセージを渡すためのベスト プラクティスを提案できる人はいますか?

4

1 に答える 1

0

質問する前に十分に深く掘り下げていなかったようです。WebKit では、Objective-C クラスを公開することで、Javascript から Objective-C メソッドを直接呼び出すことができます。このドキュメントをチェックしてください: http://developer.apple.com/library/safari/#documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html

非常に使いやすく、非常に便利です。

EDIT 完全を期すために:ページロード呼び出しを傍受する(さらにはブロックする)方法を探している場合(上記のUIWebViewの例で行ったように)、WebKit policyDelegate のドキュメントを確認してください。特定のタイプのイベントを無視 (または使用) することを選択できます。

于 2012-08-26T20:53:24.240 に答える