【问题标题】:How to pass an Object from Objective C to javascript如何将对象从Objective C传递给javascript
【发布时间】:2013-06-05 11:49:14
【问题描述】:

为了传递变量,我们使用UIWebView'方法stringByEvaluatingJavaScriptFromString:

我怎样才能传递一个对象?

【问题讨论】:

    标签: javascript objective-c cocoa-touch uiwebview


    【解决方案1】:

    为了将对象从 Obj-C 传递给 JS,您别无选择,只能对其进行序列化和反序列化。最合适的数据格式自然是 JSON。本教程将为您提供帮助:http://www.raywenderlich.com/5492/working-with-json-in-ios-5

    根据您的问题,我了解到您不仅想与 JavaScript 交谈,还想与 UIWebView 内的 JavaScript 上下文交谈。遗憾的是,您无法像在 Mac 上的 Cocoa 中访问它那样直接访问 UIWebView 的 JSContext 对象。但是,如果您只是想在不使用 UIWebView 的情况下从 Obj-C 桥接到 JavaScript,您可以通过在您的应用程序中提供您自己的 JavaScriptCore 版本来实现。如果你这样做,你可以在两个世界之间来回移动 Obj-C 和 JS 对象。这是一个演示项目:https://github.com/jfahrenkrug/AddressBookSpy/blob/master/AddressBookSpy/AddressBookSpy/ABSEngine.m

    【讨论】:

      【解决方案2】:

      我 fork phoboslab's repo 并将其更新到 WebKit 的最新版本(截至上周五)。它与 iOS 5 和 6 兼容,并包含将在 iOS 7 中提供的 Objective-C 到 Javascript 的桥梁(不使用私有框架或函数)。

      你可以在 GitHub 上找到 repo: https://github.com/darionco/JavaScriptCore-iOS

      为方便起见,我还在包含库 (.a) 和所需头文件的存储库中添加了一个 ZIP 文件。

      您可以在此处找到有关如何使用桥接器传递对象的教程: http://www.steamclock.com/blog/2013/05/apple-objective-c-javascript-bridge/

      干杯!

      【讨论】:

        猜你喜欢
        • 2016-07-15
        • 1970-01-01
        • 1970-01-01
        • 2011-05-10
        • 1970-01-01
        • 2013-08-30
        • 1970-01-01
        • 2018-07-29
        相关资源
        最近更新 更多