EasyWebView enables application to use WKWebView easily, in UIViewController or UITableViewCell.
- one line code to use WKWebView by loading url or html string.
- smart and easy to adjust height of WebView in UITableViewCell.
- easy and safe to use ScriptMessageHandler.
- support common WKWebView feature.
- Swift 4.2
- iOS 9.0
EasyWebView is available through CocoaPods. To install it, simply add the following line to your Podfile:
platform :ios, '9.0'
pod "EasyWebView"
If you want to load http url, Don't forget the Privacy Description in
info.plist
.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Use WebViewController
class ViewController: UIViewController {
func pushToWebViewController() {
pushToWebByLoadingURL("google.com", title: "Google")
}
}
Override WebViewController
class CustomWebViewController: WebViewController {
override var isShowProgressView: Bool { return false }
override var isShowTitle: Bool { return false }
}
Use WebViewCell
class ViewController: UITableViewController {
private var webCellHeight: CGFloat = 300
override func viewDidLoad() {
super.viewDidLoad()
tableView.register(WebViewCell.self, forCellReuseIdentifier: String(describing: WebViewCell.self))
}
}
extension ViewController {
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return webCellHeight
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: WebViewCell.self, for: indexPath)
// test url and scriptNames
cell.setupURLString("https://test.com", delegate: self, isAddObservers: true)
cell.webView.addScriptMessageHandler(scriptNames: ["test"]) { (_, message) in
print("😄: \(message.body)")
}
return cell
}
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
tableView.fixWebViewCellRenderingWhite()
}
}
Does your organization or project use EasyWebView? Please let me know by email. John, jieyuanz24@gmail.com .
EasyWebView is available under the MIT license.