在 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 代码