Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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
如何从WKWebView调用此javascript函数?_Javascript_Ios_Swift_Function_Wkwebview - Fatal编程技术网

如何从WKWebView调用此javascript函数?

如何从WKWebView调用此javascript函数?,javascript,ios,swift,function,wkwebview,Javascript,Ios,Swift,Function,Wkwebview,所以我在我的网站上有这个功能: 函数appQrHandlerSet(结果){ jQuery(函数(){ jQuery('#readed_qr_url').val(result.url); jQuery(this).getLayerForm('#qr_handler_layer'); }); }根据您的代码,参数result应该包含属性url。我们假设url包含要传递的JSON数据。 尝试以下两种方法: // Approach 1: func callJS() { let j

所以我在我的网站上有这个功能:

函数appQrHandlerSet(结果){
jQuery(函数(){
jQuery('#readed_qr_url').val(result.url);
jQuery(this).getLayerForm('#qr_handler_layer');
});      

}
根据您的代码,参数
result
应该包含属性
url
。我们假设url包含要传递的JSON数据。
尝试以下两种方法:

// Approach 1:
func callJS() {
    let json = "{ url:\"An url with json?\"}"
    let scriptString = "let result=\(json); appQrHandlerSet(result);"
    webView?.evaluateJavaScript(scriptString, completionHandler: { (object, error) in

    })
}

// Approach 2:
func initWebViewWithJs() {
    let config = WKWebViewConfiguration()
    config.userContentController = WKUserContentController()

    let json = "{ url:\"An url with json?\"}"
    let scriptString = "let result=\(json); appQrHandlerSet(result);"
    let script = WKUserScript(source: scriptString, injectionTime: WKUserScriptInjectionTime.atDocumentEnd, forMainFrameOnly: true)
    config.userContentController.addUserScript(script)

    webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 320, height: 400), configuration: config)
}

根据您的代码,参数
result
应该包含属性
url
。我们假设url包含要传递的JSON数据。
尝试以下两种方法:

// Approach 1:
func callJS() {
    let json = "{ url:\"An url with json?\"}"
    let scriptString = "let result=\(json); appQrHandlerSet(result);"
    webView?.evaluateJavaScript(scriptString, completionHandler: { (object, error) in

    })
}

// Approach 2:
func initWebViewWithJs() {
    let config = WKWebViewConfiguration()
    config.userContentController = WKUserContentController()

    let json = "{ url:\"An url with json?\"}"
    let scriptString = "let result=\(json); appQrHandlerSet(result);"
    let script = WKUserScript(source: scriptString, injectionTime: WKUserScriptInjectionTime.atDocumentEnd, forMainFrameOnly: true)
    config.userContentController.addUserScript(script)

    webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 320, height: 400), configuration: config)
}

非常感谢,第一种方法解决了我所有的问题!非常感谢,第一种方法解决了我所有的问题!