0

WebKit にリンクし、WebView を使用して Web コンテンツを表示する Mac OS X アプリケーションがあるとします。

この webview の JavaScript がwindow.history.pushState()メソッドを呼び出す場合、Objective-C でこれを検出するにはどうすればよいですか?

理想的には、アプリケーションに通知する ObjC デリゲート コールバックのようなものを探しています: 「pushState() はこれらのパラメーターで呼び出されました: XXX」。


: ObjC で解決策を本当に探しています。pushState()ページ上の JS をいじくり回して、JS のメソッドを置換/スウィズルすることは受け入れられないと仮定します。

4

1 に答える 1

2

これらのプライベート API は WebKit ソース ツリーで見つけました。これはまさに私が探しているものですが、それらがプライベートであることを除いて、私の特定のユースケースで問題が発生する可能性があります。

@interface NSObject (WebFrameLoadDelegatePrivate)
...
- (void)webView:(WebView *)wv didPushStateWithinPageForFrame:(WebFrame *)frame ;
- (void)webView:(WebView *)wv didReplaceStateWithinPageForFrame:(WebFrame *)frame;
- (void)webView:(WebView *)wv didPopStateWithinPageForFrame:(WebFrame *)frame;
@end
于 2012-07-23T21:16:03.073 に答える