2012-12-07 59 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]; 

這就是你想要的嗎?我希望它有幫助。