2012-12-07 57 views
2

我应该在目标C和JavaScript代码之间进行通信,我也希望将对象从目标c返回到js和js返回到目标c。为此,我使用了一个名为Webviewjavascriptbridge的库。但我无法从目标c到js获得返回值。有人可以告诉我,是否有其他图书馆可以实现这一目标?我试过在这个链接iOS JavaScript bridge中提到的库,但我无法得到从目标c到js的返回值。UIWebview JavaScript桥梁

+0

在iOS7中,支持JavascriptCore.Framework。推荐这个库,你可以用UIWebView轻松地在javascript和objc之间进行通信。 https://github.com/liaojinxing/HybridBridge – liaojinxing

回答

2
+0

嗨ismael,谢谢你的回答。我检查了链接,但没有提供任何方式将对象从js传递给obj c.if我错了,请让我知道如何实现它。 – user1878200

+0

那么你不能直接传递一个对象,你需要制作一个json并使用该工具 – Ismael

+0

绝对真棒和简单的想法,链接中的一个,我必须说。在这里复制最重要的事实:'我们必须改变的唯一事情就是在Javascript代码中。我们创建一个IFrame并将其位置设置为一个触发shouldStartLoadWithRequest方法的值,而不是更改文档位置。' – cprcrack

3

JSBridge是一个易于使用的库JScocoa/Objective -c`之间的通信。

http://code.google.com/p/jsbridge-to-cocoa/

如果你想从应用程序发送一条消息给JavaScript,然后再UIWebView对你的方法。这是我实现的一个代码,用于将WebView中的填充数据分配给客户。

NSString *jsSave=[NSString stringWithFormat:@"set_customer(%@);",self.customer.customerId]; 
[webView stringByEvaluatingJavaScriptFromString:jsSave]; 

set_customer是JS的方法。

+0

嗨Abid感谢您的回答,是否可以使用此库将对象从目标c返回到js。 – user1878200

+0

是的,你可以。如果你访问上面提到的链接,那么你会看到如何使用这个库的分步说明。他们还有一个示例xCode项目以获取帮助。 –

0

您想要一个从ObjCjs的返回值。也许这意味着您的js代码需要ObjC代码提供的参数。那么你可以试试这个:

NSString *returnValue = [self someMethod]; 
NSString *jsCallBack = [NSString stringWithFormat:@"yourJsMethodName:('%@')", returnValue]; 
[webView stringByEvaluatingJavaScriptFromString:jsCallBack]; 

这就是你想要的吗?我希望它有帮助。