在 XCode 中从 Objective-C 访问 JavaScript 变量

Posted

技术标签:

【中文标题】在 XCode 中从 Objective-C 访问 JavaScript 变量【英文标题】:Accessing JavaScript variables from Objective-C in XCode 【发布时间】:2014-08-26 07:39:19 【问题描述】:

最近我尝试使用 html5 和 JS 为 ios 创建一个应用程序,并使用 cordova 构建它。

然后我想我想要更多已经在 iOS sdk 中的功能。所以我在 XCode 中打开了 cordova 项目,坦白说不知道:

我应该如何使用我的 Objective-C 函数访问 javascript 变量,反之亦然?

有可能吗?我知道 JS 没有特定的变量类型,而 C 有。

【问题讨论】:

你试过查看 JavaScriptCore.Framework 吗? 【参考方案1】:

如果你想制作一个 Cordova 应用程序并访问 iOS 功能,你可以使用插件: http://plugins.cordova.io/#/

如果您想在 iOS 程序中使用 Javascript,则不要使用 Cordova。然后在 XCode 中使用“JavaScriptCore”库: http://www.bignerdranch.com/blog/javascriptcore-and-ios-7/

祝你好运。

【讨论】:

【参考方案2】:

为了从您的 iOS 代码中执行 JS,您必须使用以下模式

NSString* jsCall = @"1 + 1;"
NSString* res = [webView stringByEvaluatingJavaScriptFromString:jsCall];

其中webView 是 CDVViewController 的属性,它是 Cordova 为您创建的 MainController 的基类。

为了能够从 JavaScript 调用 iOS 代码,您必须使用 Cordova 插件。可以在 Corodova 官方文档的 Plugin Development Guide 部分找到如何创建 Cordova 插件的说明

【讨论】:

以上是关于在 XCode 中从 Objective-C 访问 JavaScript 变量的主要内容,如果未能解决你的问题,请参考以下文章

在组合项目中从Swift类访问Objective-C类中的singleton sharedInstance

在 Xcode 11.5 中从 AppDelegate 访问 ViewController(firebase google 登录)

如何在ios的objective-c中从设备中选择任何文档文件

在 Xcode 中通过 Objective-C 代码测试 Swift 代码

尝试在objective-c中从objects[0]插入nil对象

在 iOS 中从 xcdatamodel 访问 FetchRequest