1

在阅读 WebKit 文档时,我发现我可以直接在嵌入式浏览器中评估 Javascript。伟大的!这处理将消息从本机 OSX 应用程序传递到网站。

但是,我还需要能够从我的 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

非常容易使用,而且超级有用。

编辑 为了完整起见:如果您正在寻找一种拦截(甚至阻止)页面加载调用的方法(就像我在上面的 UIWebView 示例中所做的那样),请查看WebKit policyDelegate 的文档。您可以选择忽略(或使用)某种类型的事件。

于 2012-08-26T20:53:24.240 回答