2017-02-03 16 views
0

JSON2HTMLを使用してJSONからHTMLデータを解析し、UIWebView(Swift 3.0を使用)でレンダリングしたいと思います。それを達成する方法を教えてください。前もって感謝します!JSONからHTMLデータを解析してUIWebViewでレンダリングする方法(Swift 3.0を使用)

は、ここで私が試したものです:

let jsfile1 = try!String(contentsOfFile: Bundle.main.path(forResource: "json2html", ofType: "js")!) 

func loadJS() 
{ 
    var getData={} 
    var context = JSContext() 
    var valSwiftyJson:JSON = [:] 
    var test = context?.evaluateScript(jsfile1) 

    let testFunction = test?.objectForKeyedSubscript("json2html") 

    let urlString = //Have removed the URL string due to restrictions 
    Alamofire.request(urlString,encoding:JSONEncoding.default).responseJSON 
     { response in 
      if let alamoJson = response.result.value 
      { 
       let swiftyJson = JSON(data:response.data!) 
       valSwiftyJson = swiftyJson["FormInfo"]["Form"] 
       print(valSwiftyJson) 
      } 

    } 
    let result = testFunction?.call(withArguments: [getData,valSwiftyJson]) 
    webView.loadHTMLString((result?.toString())!, baseURL: nil) 
} 

は最後に、私は(ローカルに保存されている)index.htmlファイルを作成することで、問題を解決するために管理し、私はその中JSON2HTMLライブラリを言及しました。 JSONをHTMLに変換する必要があるたびに、JSON(HTML内部)コンテンツを動的に追加しました。最後に、最終的なindex.htmlをUIWebViewにロードします(これは魅力的でした)。

+0

あなたは私たちにあなたがこれまでに試してみましたが、あなたのコード、より良いシェアを表示することができますそれはjsfiddleまたは何かの上に – user3775217

+0

@ user3775217私はあなたが質問したようにコーディングを追加しました – user2842987

答えて

0

JSON2HTMLとしてこのlibraryについてお話ししていますか?もしそうなら、SwiftのJSON要素をHTMLに変換するためのライブラリはないと思います。

バックエンドからJSON要素をダウンロードする予定ですか?次に、JSON2HTMLへのnode.jsラッパーがあるので、同じサーバー上のJSONからHTMLへの変換を行うことをお勧めします。したがって、あなただけのHTMLコンパイルされたデータをダウンロードするでしょうし、UIWebViewでそれをレンダリングする(スウィフト3)このコード行と同じくらい簡単だろう:

// html is the HTML data downloaded from your back-end 
webView.mainFrame.loadHTMLString(html, baseURL: nil) 
+0

私はJSONファイル自体をJSON自体に埋め込まれたHTML形式のサーバーレスポンスとして取得します。 UIWebViewを使用して、これらのフォームを動的に表示する方法を見つけなければなりません(また、Xcode 8 - swift 3プロジェクトで既存のHTMLタグを再利用する予定です)。私はJavaScriptCoreを使用してJSON2HTML jsファイルを参照したいと思います。あるいは、このタスクを実行するためにSwiftの既存のフレームワークを見つけなければなりません! – user2842987

+0

はい。正確なJSON2HTMLライブラリを追加しました。 – user2842987

関連する問題