【问题标题】:UIWebview javascript bridgeUIWebview javascript桥
【发布时间】:2012-12-07 12:58:01
【问题描述】:

我应该在目标 C 和 javascript 代码之间进行通信,我还想将目标 c 中的对象返回到 js 并将 js 返回到目标 c。为此,我使用了一个名为 Webviewjavascriptbridge 的库。但我无法从目标 c 到 js 获得返回值。有人可以告诉我是否有任何其他库可以实现这一目标?我尝试使用此链接iOS JavaScript bridge 中提到的库,但我无法从目标 c 到 js 获得返回值。

【问题讨论】:

标签: javascript objective-c uiwebview


【解决方案1】:

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 的方法。

【讨论】:

  • 您好 Abid 感谢您的回答,是否可以使用此库将对象从目标 c 返回到 js。
  • 是的,你可以。如果您访问上述链接,那么您将看到如何使用该库的分步说明。他们还有一个示例 xCode 项目来寻求帮助。
【解决方案2】:

【讨论】:

  • 您好伊斯梅尔,感谢您的回答。我已经检查了链接,但它没有提供任何将对象从 js 传递到 obj c 的方法。如果我错了,请告诉我如何实现它。
  • 嗯,你不能直接传递一个对象,你需要制作一个 json 并使用它
  • 绝对棒极了而且简单的想法,我必须说的是链接中的那个。在这里复制最重要的事实:The only thing we have to change is in Javascript code. Instead of changing the document location, we create an IFrame and set its location to a value that trigger the shouldStartLoadWithRequest method.
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2012-03-17
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多