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 swift. Any example I have found uses "WKWebView". There has to be an easy way to listen to a JavaScript function like the below:
// HTML / JS
<div id ="myDiv" onclick="listenInSwift()">myItem</div>
Is this possible with a UIWebView? Thanks all!
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)