objective-c - 如何在 Mac OS X 上使用 WebKit 将 Objective-C 函数公开给 JavaScript?

标签 objective-c cocoa macos webkit

我知道要在 iPhone 上执行此操作,您需要捕获链接请求(根据我的另一个 iPhone 问题 UIWebView Expose JavaScript),您可以轻松地执行相反的操作并从 Obj-C 代码访问 JavaScript。

但是,我希望 JavaScript 能够调用一些以某种方式注册到 WebKit 的 Objective-C 函数。我认为您可以比在 iPhone 上捕获链接做得更好,因为在 Mac OS X 上我们可以访问完整的 WebKit。

我希望基本上做 Using JavaScript from Objective-C 的反向操作

更新:例如,是否可以在 JavaScript 中公开 objective-c 方法,如 self.external.objcmethod();

最佳答案

看看my answerthis question , 这非常相似。我提供的代码可以准确地向您展示如何执行您想要的操作。

基本上,您需要根据 the documentation 实现 WebScripting 协议(protocol).

您不需要定义自己的 URL 方案处理程序,这只对 iPhone 应用程序是必需的。在 Mac 上,WebView 对象比 iPhone 上的 UIWebView 强大许多数量级,并且允许从 JavaScript 到 Objective-C 的完全桥接,反之亦然。

关于objective-c - 如何在 Mac OS X 上使用 WebKit 将 Objective-C 函数公开给 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2809031/

相关文章:

java - 缺少内置 java api 时出现 ClassNotFound 异常

ios - 如何设置 UITableView 的高度来解决滚动问题?

swift - 为什么设置约束后无法再调整 NSWindow 的大小?

cocoa - 从共享实用程序窗口和最前面的文档窗口进行绑定(bind)的好方法是什么?

objective-c - 如何使用 Cocoa Bindings 将复选框单元添加到 NSTableView?

python - 在 OS X 上安装 python 2 的最佳方法是什么?

c - C-文件处理和EOF

ios - 向上向下滚动时 collectionViewCell 图像发生变化

ios - 按特定字符拆分字符串,iOS

iphone - 自定义 UITableViewCell 宽度在 tableview reloadData 上调整大小