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
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)