如何在 Objective-C 中运行 javascript 文件?

Posted

技术标签:

【中文标题】如何在 Objective-C 中运行 javascript 文件?【英文标题】:How do I run a javascript file in Objective-C? 【发布时间】:2014-01-15 21:47:35 【问题描述】:

到目前为止,我已经尝试了很多事情,但都没有成功。 javascript文件必须采用某种格式吗? 谢谢

【问题讨论】:

您的实际情况/目标是什么(即,为什么要在您的 Objective-C 应用程序中运行 JavaScript 代码)?如果没有一些额外的上下文,您可能无法获得您正在寻找的答案。 要在 UIWebView 中使用 javasript,问题几乎就是我想要做的。从目标 c 运行 javascript 【参考方案1】:

在 Mac 上:

这里是对 JavaScriptCore 的引用:https://developer.apple.com/library/mac/documentation/Carbon/Reference/WebKit_JavaScriptCore_Ref/_index.html。您还可以在 WWDC 2013 上找到“将 Javascript 集成到原生应用程序”视频。

在 iOS 上:

我能想到的唯一方案是使用 Instrument 运行 UI 自动化 javascript。

【讨论】:

【参考方案2】:

@zyang 的答案与 javascript 核心有关——对于“我如何从 Objective-c 运行 javascript”这一一般性问题,这是一个非常好的答案。

但是你表明你想在 UIWebView 中使用它。

我知道这样做的(唯一)方法是使用 UIWebView 类方法stringByEvaluatingJavascriptString,它的界面如下:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

您将要执行的 javascript 作为唯一参数传递,这将在 UIWebView 上下文中执行,并将任何结果作为 NSString 返回。我已经使用它在混合应用程序的 Web 和本机代码部分之间进行交互。

【讨论】:

以上是关于如何在 Objective-C 中运行 javascript 文件?的主要内容,如果未能解决你的问题,请参考以下文章

objective-c 中如何在一个函数中调用自己类中的另外一个函数

如何共享/分发已编译的Objective-C代码(如Java中的JAR)?

在 Android 上运行 Objective-C 静态库

如何使 Java 和 Objective-C (iPhone) 之间的 AES 加密相同?

iPhone(Objective-c)和Java之间的AES区别

通过套接字从 Objective-C 向 Java 发送数据