繁体   English   中英

从Swift 3调用JavaScript函数

[英]Call javascript function from swift 3

我怎样才能从SwiftJavascript调用以下方法

function downloadComplete(status,filename){
        alert ("Send Status and file name "+status +" "+filename);
       $('#status').val (status);
       $('#filename').val(filename);
    }

我可以通过发送数据

    self.webView?.stringByEvaluatingJavaScriptFromString
when we get data from Javascript by func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
        if(message.name == "iMessageNameClicked") {
            print(message)
            debugPrint(message)
            print("iMessageBodyClicked: \(message.body)")
            }
}

请让我知道如何处理吗?

提前致谢

据我所知,我们可以按照以下步骤迅速完成javascript调用。 步骤1:像下面这样,在HTML文件的OnloadFunction上声明两个变量。

var status = %@;
var filename = %@;

步骤1:在Swift类上,将您的html内容作为字符串获取,并通过以下代码设置值:

let localfilePath = Bundle.main.url(forResource: "index", withExtension: "html")
    do {
        var myHTMLString = try NSString(contentsOf: localfilePath!, encoding: String.Encoding.utf8.rawValue)
        myHTMLString = NSString(format: myHTMLString, "'\(**YOURVALUE!**)'" , "'\(**YOURVALUE!**)'") 
        webView.loadHTMLString(myHTMLString as String, baseURL: Bundle.main.url(forResource: "ads", withExtension: "js")) //Add your js file here
    }
    catch let error as NSError
    {
        print("Error: \(error.description)")
    }

希望这会对您有所帮助。

我在WKWebView这样使用

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {


      let   str = "$('body').attr('data-uid','\(String(uid))');$('body').attr('data-pid','\(String(memberTypeId))');$('body').attr('data-baseurl','\(DataProvider.sharedInstance.baseUrl)');"


        self.webView.evaluateJavaScript(str) { (id, error) in
            print(error)
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM