在项目中我们经常会在多个界面使用到WebView,所以本文对WebView进行封装,实现一个通用的WebView控制器。
实现效果
简单的Webview
实现逻辑
使用系统提供的WKWebView控件,外界通过传递网址,或者字符串进行显示。
1)创建WebView控制器SuperWebController,继承自BaseTitleController。
class SuperWebController: BaseTitleController {
}
2)定义SuperWebController接收的两个参数uri和content。
class SuperWebController: BaseTitleController {
var uri:String?
var content:String?
}
3)重写initViews(),设置SuperWebController内容布局为RelativeLayout,并添加标题栏右边的关闭按钮 和 webView控件,webView控件使用懒加载创建。
class SuperWebController: BaseTitleController {
var uri:String?
var content:String?
override func initViews() {
super.initViews()
initRelativeLayoutSafeArea()
//设置右侧按钮
addRightImageButton(R.image.close()!.withTintColor())
container.addSubview(webView)
}
/// 获取配置
static func defaultConfiguration() -> WKWebViewConfiguration {
let r = WKWebViewConfiguration()
if #available(iOS 10.0, *) {
r.mediaTypesRequiringUserActionForPlayback = .all
} else if #available(iOS 9.0, *){
r.requiresUserActionForMediaPlayback = false
}els