UIWebview JavaScript桥梁
我应该在目标C和JavaScript代码之间进行通信,我也希望将对象从目标c返回到js和js返回到目标c。为此,我使用了一个名为Webviewjavascriptbridge的库。但我无法从目标c到js获得返回值。有人可以告诉我,是否有其他图书馆可以实现这一目标?我试过在这个链接iOS JavaScript bridge中提到的库,但我无法得到从目标c到js的返回值。UIWebview JavaScript桥梁
检查了这一点,可能是你需要的东西:
嗨ismael,谢谢你的回答。我检查了链接,但没有提供任何方式将对象从js传递给obj c.if我错了,请让我知道如何实现它。 – user1878200
那么你不能直接传递一个对象,你需要制作一个json并使用该工具 – Ismael
绝对真棒和简单的想法,链接中的一个,我必须说。在这里复制最重要的事实:'我们必须改变的唯一事情就是在Javascript代码中。我们创建一个IFrame并将其位置设置为一个触发shouldStartLoadWithRequest方法的值,而不是更改文档位置。' – cprcrack
JSBridge
是一个易于使用的库JS
和cocoa
/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的方法。
嗨Abid感谢您的回答,是否可以使用此库将对象从目标c返回到js。 – user1878200
是的,你可以。如果你访问上面提到的链接,那么你会看到如何使用这个库的分步说明。他们还有一个示例xCode项目以获取帮助。 –
您想要一个从ObjC
到js
的返回值。也许这意味着您的js
代码需要ObjC
代码提供的参数。那么你可以试试这个:
NSString *returnValue = [self someMethod];
NSString *jsCallBack = [NSString stringWithFormat:@"yourJsMethodName:('%@')", returnValue];
[webView stringByEvaluatingJavaScriptFromString:jsCallBack];
这就是你想要的吗?我希望它有帮助。
在iOS7中,支持JavascriptCore.Framework。推荐这个库,你可以用UIWebView轻松地在javascript和objc之间进行通信。 https://github.com/liaojinxing/HybridBridge – liaojinxing