首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问JavaScriptCore引擎的UIWebView

访问JavaScriptCore引擎的UIWebView
EN

Stack Overflow用户
提问于 2013-10-29 16:40:44
回答 3查看 8.1K关注 0票数 9

我刚刚在iOS7中发现了一个新的框架: JavaScriptCore。

它看起来很棒,但是我如何访问UIWebView的运行时/上下文?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-22 23:20:46

这方面没有官方机制。但是,我知道有两种方法可以获得JSContext。我可能不会在送货应用程序中使用任何一种。

  1. 使用KVC访问内部UIWebView属性。在这篇博文中详细解释:http://blog.impathic.com/post/64171814244/true-javascript-uiwebview-integration-in-ios7

代码语言:javascript
复制
JSContext *ctx = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
  1. 通过一个类别向NSObject添加一个神奇的方法。更详细地解释,在这里:JavaScriptContext

代码语言:javascript
复制
@implementation NSObject (magic)
- (void) webView: (id) unused didCreateJavaScriptContext: (JSContext*) ctx forFrame: (id) frame
{
    // ...
}
@end
票数 11
EN

Stack Overflow用户

发布于 2013-12-19 06:57:42

你可能想看看开发者网站(https://developer.apple.com/wwdc/videos/)上的2013年https://developer.apple.com/wwdc/videos/会话视频,特别是“将JavaScript集成到本地应用程序”,其中引用了“向JavaScriptCore引入一个新目标--C API。iOS开发人员现在可以将脚本集成到他们的应用程序中,而不必捆绑自定义语言解释器。该API建立在现有的从Mac到JavaScriptCore的can之上,使得使用JavaScript编程变得更容易,也更容易出错。”关于与WebView一起使用它有一节,例如:使用:-webView:didCreateJavaScriptContext:forFrame:

票数 2
EN

Stack Overflow用户

发布于 2013-10-29 16:55:17

JavaScriptCore的存在使得开发人员可以从Objective中使用JavaScript运行时。我所知道的访问UIWebView运行时的唯一方法是通过stringByEvaluatingJavaScriptFromString:方法,这显然不是很灵活。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19664206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档