Member-only story

Load JavaScript in UIWebView iOS

Mr.Javed Multani
1 min readOct 3, 2020

--

We can run custom JavaScript on a UIWebView using the method stringByEvaluatingJavaScriptFromString().This method returns the result of running the JavaScript script passed in the script parameter, or nil if the script fails.

Swift

Load script from String

webview.stringByEvaluatingJavaScriptFromString(“alert(‘This is JavaScript!’);”)

Load script from Local file

//Suppose you have javascript file named "JavaScript.js" in project.let filePath = NSBundle.mainBundle().pathForResource("JavaScript", ofType: "js")
do {let jsContent = try String.init(contentsOfFile: filePath!, encoding:
NSUTF8StringEncoding)webview.stringByEvaluatingJavaScriptFromString(jsContent)
}catch let error as NSError{
print(error.debugDescription)}

Objective-C

Load script from String

[webview stringByEvaluatingJavaScriptFromString:@”alert(‘This is JavaScript!’);”];

Load script from Local file

//Suppose you have javascript file named "JavaScript.js" in project.NSString *filePath = [[NSBundle mainBundle] pathForResource:@”JavaScript” ofType:@”js”];NSString *jsContent = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; [webview stringByEvaluatingJavaScriptFromString:jsContent];

Note The stringByEvaluatingJavaScriptFromString: method waits synchronously for JavaScript evaluation to complete. If you load web content whose JavaScript code you have not vetted, invoking this method could hang your app. Best practice is to adopt the WKWebView class and use its evaluateJavaScript:completionHandler: method instead. But WKWebView is available from iOS 8.0 and later.

--

--

Mr.Javed Multani
Mr.Javed Multani

Written by Mr.Javed Multani

Software Engineer | Certified ScrumMaster® (CSM) | UX Researcher | Youtuber | Tech Writer

No responses yet