我怎样才能在iOS Swift中调用javaScript函数

我想从Web视图中获取html字符串。 我试图从网络视图中获取html字符串,如,

let html = webView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML") print(html) 

在这个代码中我得到所有的Html代码没有我在web加载后给出的输入值。 另一方面,有一个函数,它将给我带有输入值的完整HTML代码。 但我无法在我的swift代码中调用javascript函数。所以我的javaScript函数有一个我想调用的参数。

我试着像这样调用javaSript函数,

 let pp = webView.stringByEvaluatingJavaScript(from:"draft") 

但它不起作用。 我想得到所有的HTML包括输入值。

这是一个截图,它是如何在android中完成的。

android图片

我在这里附上了我所有的HTML代码

       Quick Inspection  textarea{ resize: none; }    
var getJsonData = $("#jsonvalue").text(); if(getJsonData != ""){ SetJsonValue(); } function getHtml() { var Alldata = $('form').serializeArray(); var JsonString = JSON.stringify(Alldata); $("div#jsonvalue").text(JsonString); var allCode = document.documentElement.outerHTML; return allCode; } function SetJsonValue() { var getJsonData = $("#jsonvalue").text(); var obj = $.parseJSON(getJsonData), dataObj = {}; len = obj.length; for (i = 0; i < len; i++) { var f_name = obj[i].name; var f_value = obj[i].value; var result = f_name.split('-'); var type = result[0]; if (type == 'textarea') { $("#rendered-form " + type + "[name = " + f_name + "]").text(f_value); } else if (type == 'text') { $("input[name = " + f_name + "]").val(f_value); } else if (type == 'radio') { $('#rendered-form input[name=' + f_name + '][value=' + f_value + ']').prop("checked", true); } else if (type == 'select') { $("#rendered-form " + type + "[name = " + f_name + "]").val(f_value); } else { $(":checkbox[value=" + f_value + "]").prop("checked","true"); } } } function draft(){ var getAllHtmlCode = getHtml(); Android.fullCode(getAllHtmlCode); } function finalsave(){ var obj = $('form').serializeArray(); len = obj.length; //$( ".fb-radio-group").hide(); for (i = 0; i < len; i++) { var f_name = obj[i].name; var f_value = obj[i].value; var result = f_name.split('-'); var type = result[0]; if (type == 'textarea') { //if( f_value == "") { // $( ".field-textarea-"+result[1]).hide(); //}else{ var bodyText = f_value; var body = $("
"); body.text(bodyText); $("#rendered-form " + type + "[name = " + f_name + "]").replaceWith(body); //} } else if (type == 'text') { //if( f_value == "") { // $( ".field-text-"+result[1]).hide(); //}else{ var bodyText = f_value; var body = $("
"); body.text(bodyText); $("input[name = " + f_name + "]").replaceWith(body); //} } else if (type == 'radio') { //$(".l_header").hide(); //$(".field-radio-group-"+result[2]).prev().show(); //$(".field-radio-group-"+result[2]).show(); var r_value = $('#rendered-form input[name=' + f_name + ']:checked').val(); $('#rendered-form input[name=' + f_name + ']').parent().hide(); $("label[for='"+f_name+"']").append('
'+r_value+'
'); } else if (type == 'select') { if( f_value == "" || f_value == "0") { //$( ".field-select-"+result[1]).hide(); }else{ var lbl = $("#rendered-form " + type + "[name = " + f_name + "]").find('option:selected').text(); var body = $("
"); body.text(lbl); $("#rendered-form " + type + "[name = " + f_name + "]").replaceWith(body); } } else { $(":checkbox[value=" + f_value + "]").prop("checked","true"); } } var allCode = document.getElementById("rendered-form").outerHTML; Android.finalCode(allCode); }