2012-08-26 29 views
1

在閱讀WebKit文檔時,我看到我可以directly evaluate Javascript in the embedded browser。大!這處理來自本地OSX應用程序的傳遞消息到網站中。OSX應用程序中的WebKit:將消息從Javascript傳遞給包裝應用程序?

但是,我還需要能夠從我的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; 
} 

巧合的是,我看到了other users have come up with this solution for the iOS。但是,我沒有在OSX WebKit框架中看到等效方法(例如,在Frame Load Delegate內)。

任何人都可以建議將我的Javascript消息傳遞給我的OSX應用程序的最佳做法?

回答

0

看起來我在問之前沒有足夠深入。 在WebKit中,您可以通過暴露Objective-C類直接從Javascript調用Objective-C方法。看看這個文檔:http://developer.apple.com/library/safari/#documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/ObjCFromJavaScript.html

非常容易使用,並超級有用。

編輯 爲了完整起見: 如果你正在尋找一種方式來攔截(甚至塊)的頁面加載調用(像我一樣在一個UIWebView上面的例子),檢查出documentation for the WebKit policyDelegate。您可以選擇忽略(或使用)某種類型的事件。

相關問題