如何在iOS Swift中调用javaScript函数

如何在iOS Swift中调用javaScript函数,javascript,ios,swift,forms,Javascript,Ios,Swift,Forms,我正在尝试从web视图获取html字符串。我尝试从web视图中获取html字符串,如 let html = webView.stringByEvaluatingJavaScript(from: "document.documentElement.outerHTML") print(html) 在这段代码中,我得到了所有的Html代码,而没有在web加载后给出的输入值。 另一方面,还有一个函数,它将为我提供带有输入值的完整html代码。但是我无法在我的swift代码中调用javascript函数

我正在尝试从web视图获取html字符串。我尝试从web视图中获取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中完成的

我在这里附加了我所有的html代码

<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta http-equiv='Content-Type' content='text/html charset=UTF-8'/>
        <link type='text/css' rel='stylesheet' href='file:///android_asset/bootstrap.min.css'>
        <script src="file:///android_asset/jquery.min.js"></script> 
        <title>Quick Inspection</title>
        <style>
            textarea{
                resize: none;
            }
        </style>
    </head>
    <body style='background: #fff3d6'>
        <div class='container-fluid' style='padding-top: 10px; padding-left: 0px; padding-right: 0px; background: #fff3d6'>
            <div class='container'>
                <div class='row'>
                    <form id='rendered-form'>
                        <div class='rendered-form'>
                            <div class='fb-textarea form-group field-textarea-1505524302868'>
                                <label for='textarea-1505524302868' class='fb-textarea-label'>1. Description of Work</label>
                                <textarea class='form-control textarea' name='textarea-1505524302868' id='textarea-1505524302868'></textarea>
                            </div>
                            <div class='fb-textarea form-group field-textarea-1505524384468'>
                                <label for='textarea-1505524384468' class='fb-textarea-label'>2. Work Status</label>
                                <textarea class='form-control textarea' name='textarea-1505524384468' id='textarea-1505524384468'></textarea>
                            </div>
                            <div class='fb-textarea form-group field-textarea-1505524405168'>
                                <label for='textarea-1505524405168' class='fb-textarea-label'>3. Progress</label>
                                <textarea class='form-control textarea' name='textarea-1505524405168' id='textarea-1505524405168'></textarea>
                            </div>
                            <div class='fb-textarea form-group field-textarea-1505524418785'>
                                    <label for='textarea-1505524418785' class='fb-textarea-label'>4. Observation</label>
                                <textarea class='form-control textarea' name='textarea-1505524418785' id='textarea-1505524418785'></textarea>
                            </div>
                            <div class='fb-textarea form-group field-textarea-1505524433458'>
                                <label for='textarea-1505524433458' class='fb-textarea-label'>5. Recommendation</label>
                                <textarea class='form-control textarea' name='textarea-1505524433458' id='textarea-1505524433458'></textarea>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
            <div class="clearfix"></div>
        </div>
        <div id="jsonvalue" style="visibility: hidden; display:inline;"></div>
    </body>

<script>

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 = $("<div class='ans'> </div>");
                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 = $("<div class='ans'> </div>");
                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('<div class="ans">'+r_value+'</div>');
        } 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 = $("<div class='ans'> </div>");
                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);
}
</script>

</html> 

快速检查
文本区{
调整大小:无;
}
1.工作说明
2.工作状态
3.进展
4.观察
5.推荐
var getJsonData=$(“#jsonvalue”).text();
如果(getJsonData!=“”){
SetJsonValue();
}
函数getHtml()
{
var Alldata=$('form').serializeArray();
var JsonString=JSON.stringify(Alldata);
$(“div#jsonvalue”).text(JsonString);
var allCode=document.documentElement.outerHTML;
返回所有代码;
}
函数SetJsonValue()
{
var getJsonData=$(“#jsonvalue”).text();
var obj=$.parseJSON(getJsonData),dataObj={};
len=物体长度;
对于(i=0;i