最近在折騰IOS新聞瀏覽客戶端,當中須要用到webview傳遞JSON數據到IOS上,而後在IOS上解析。剛入門IOS不久,看了很多的書,但都是囫圇吞棗。在開發過程當中,遇到很多問題。 javascript
開發環境 php
mac mini (IOS端開發) java
thinkpad x200s(PHP開發) web
功能實現: json
在WEBVIEW建立DOM監聽,判斷用戶按下WEBVIEW上連接,經過DOM獲取相關連接信息,遍歷數組,最終用 數組
$.toJSON(jsArray);//將JS數組轉換成JSON格式 函數
下面記錄一下 url
一、JS數組定義 spa
最終在WEBVIEW端須要傳遞的JSON格式爲 插件
[{"title":"網頁標題1","url":"網頁地址1"},{"title":"網頁標題2","url":"網頁地址2"}]
實現思路步驟:
首先是定義javascript數組,
var jsArray = new Array();
或者
var jsArray = [];
爲了顯COOL,我用後面的數組定義
問題來了:
在PHP下定義
phpArray[i]['title']=網頁標題1;
垂手可得,可是在JAVASCRIPT卻不行。
後來通過嘗試得出了:
jsArray[i]={"title":"網頁標題","url":"網頁地址"};
$.toJSON();
在網上找到的toJSON插件函數,在頁面上導入,當在console輸出的json格式卻爲
[{title:"網頁標題",url:"網頁地址"};]
很明顯這個json格式不標準,經排除,確認是在toJSON插件下數組拼切時沒有加上"
最後在WEBVIEW的JS發送json數據到IOS端
bridge.send($.toJSON(jsArray));
IOS端用了WebViewJavascriptBridge來橋接
-(void)viewDidLoad
{
_bridge = [WebViewJavascriptBridge bridgeForWebView:webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback){
NSLog(@"獲取JSON數據:%@",data);
}];
}OK,Done!