Call swift function with javascript using UIWebview

前端 未结 2 1940
天命终不由人
天命终不由人 2020-12-17 06:45

I apologize if this has been asked but I was unable to find any answer or solution. I am looking to call a JavaScript function from a \"UIWebView\" and listen for it in swif

2条回答
  •  清酒与你
    2020-12-17 07:14

    Implement listenInSwift like this:

    function listenInSwift() {
        window.location = 'yoururlscheme://somehost?greeting=hello'
    } 
    

    Then listen for this URL with this code in your UIWebViewDelegate class:

    func webView(_ webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType navigationType: UIWebViewNavigationType) -> Bool {
        if request.URL.scheme == 'yoururlscheme' {
            print('Hello JavaScript...')
        }
    }
    

    Don't forget to register your URL Scheme (in this case 'yoururlscheme') in Xcode.

    To load a local file in the web view, try this:

    let baseURL = NSURL.fileURLWithPath(NSBundle.mainBundle().bundlePath);
    let relativePath = "www/\(file)"
    let fileURL = NSURL(string: relativePath, relativeToURL: baseURL);
    let URLRequest = NSURLRequest(URL: fileURL!);
    webView.loadRequest(URLRequest)
    

提交回复
热议问题