【发布时间】:2014-04-01 15:31:17
【问题描述】:
我有一个使用 JavaScriptCore 的 UIWebView。我正在尝试从网页调用 ObjC 函数。但是,该函数需要异步调用,因此我传入了一个回调函数,该函数在调用异步 ObjC 函数时调用。
据我了解,JS函数通过桥接相当于NSBlock。我目前的代码是:
context[@"currentUserLocation"] = ^( void(^callback)(NSString* str) )
{
NSLog(@"Starting Async Function");
//generic async function
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"delay complete");
callback( @"return value" );
});
};
我正在做的事情有什么根本错误吗?从表面上看,ObjC 似乎不知道在什么上下文中运行回调函数。
【问题讨论】:
标签: javascript ios objective-c uiwebview javascriptcore