【问题标题】:Call javascript function from swift 3从swift 3调用javascript函数
【发布时间】:2018-03-07 15:09:36
【问题描述】:

如何将下面的方法从 swift 调用为 Javascript

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 swift communication


    【解决方案1】:

    据我所知,我们可以通过以下步骤从 swift 实现 javascript 调用。 Step1:在 HTML 文件的 OnloadFunction 上声明两个变量,如下例所示。

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

    Step1:在 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)")
        }
    

    希望这对你有帮助。如果有请告诉我。谢谢

    【讨论】:

      【解决方案2】:

      我在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)
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-07
        • 2018-07-18
        • 1970-01-01
        • 1970-01-01
        • 2020-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多