Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将数据从swift传递到javascript?_Javascript_Swift - Fatal编程技术网

如何将数据从swift传递到javascript?

如何将数据从swift传递到javascript?,javascript,swift,Javascript,Swift,我知道如何将数据从javascript传递到swift,但不知道如何将数据从swift传递到javascript 我用于将数据从javascript传递到swift的方法如下: <head> <title>Test</title> <meta charset="UTF-8"> </head> <body> <h1>WebView Test 3</h1> <scr

我知道如何将数据从javascript传递到swift,但不知道如何将数据从swift传递到javascript

我用于将数据从javascript传递到swift的方法如下:

<head>

    <title>Test</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>WebView Test 3</h1>
    <script>
        function callNativeApp () {
            try {
                webkit.messageHandlers.callbackHandler.postMessage("Here");
            } catch(err) {
                console.log('The native context does not exist yet');
            }
        }
    callNativeApp();
        </script>
</body>


如您所知,您可以通过调用postMessage将信息传递给Swift

要从Swift向浏览器传递信息,只需调用
evaluateJavascript
,如下所示:

let num1 = 4
let num2 = 8

webView.evaluateJavaScript("addTwoNumbers(\(num1), \(num2);")  { (result, error) in
                guard error == nil else {
                    print("there was an error")
                    return
                }

                print(Int(result))
            }

要让这段特定的代码执行任何操作,您需要在Javascript中使用一个
addTwoNumber
函数来处理该函数并完成某些操作。

作为一个示例,我将使用如下JS函数:-

      function send_message(val01, val02) {
           // you JS CODE
      }
然后,要运行该函数,应调用:-

 self.webView.stringByEvaluatingJavaScriptFromString("send_message(\"\(self.value1)\", \"\(self.value2)\")")!

您是否在将JSON字符串作为参数传递时遇到问题?当JSON字符串作为参数传递时,evaluteJavaScript中断。如果您有时间的话,我将非常感谢您的想法:这将创建一个类似“发生JavaScript异常”的错误UserInfo={wkJavaScriptExceptionInNumber=1,WKJavaScriptExceptionMessage=SyntaxError:意外标记“;”.Expected')”,以结束参数列表。“它应该像webView.evaluateJavaScript(“AddTwoNumber((num1),(num2))”当我测试它时,它就起作用了。为什么每个参数都需要括号,javascript使用分号来结束它的行,所以不确定为什么会引发错误您在将JSON字符串作为参数传递时遇到问题吗?当JSON字符串作为参数传递时,evaluteJavaScript会中断。如果您有时间,我将感谢您的想法:
 self.webView.stringByEvaluatingJavaScriptFromString("send_message(\"\(self.value1)\", \"\(self.value2)\")")!