LQWebView 1.5.2

LQWebView 1.5.2

Maintained by LQQ.



LQWebView 1.5.2

  • By
  • LiuQiqiang

LQWebView

对WKWebView 的封装,继承自UIView,方便使用!

添加

手动

可直接将项目目录下的 ‘LQWebView’ 文件夹拖入项目使用

Cocoapods

在Pidfile文件添加

pod 'LQWebView'

Swift版本

pod 'LQWebView/SF'

使用

使用简单,只需要创建/添加到视图即可:

LQWebView *web = [[LQWebView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:web];

然后,调用相应的方法,加载URL:

加载网络URL
/**
 加载网络URL(无参数)

 @param urlString URL地址
 */
- (void) loadURLString:(NSString *)urlString ;

/**
 加载网络URL(带参数),拼接在URL后

 @param urlStr URL地址
 @param param 参数(参数名称为key,参数内容为value)
 */
- (void) loadUrlString:(NSString *)urlStr params:(NSDictionary *)param ;
- (void) loadURL:(NSURL *)url ;

使用:

[web loadURLString:@"http://www.baidu.com"];
加载本地URL
/**
 加载本地HTML文件
 
 @param file html文件名
 */
- (void) loadLocalFile:(NSString *)file ;

/**
 加载本地的html文件(蓝色文件夹)
 
 @param path 文件在文件夹内的相对路径(包含文件夹名称)
 @param ext 扩展字段,比如链接中拼接的子路径/参数等
 */

- (void) loadLocalFilePath:(NSString *)path withExtension:(NSString *)ext ;
代理

加载情况的回调,使用代理来实现:

- (void) webViewStartLoad:(LQWebView *) webView ;

- (void) webViewLoadSuccess:(LQWebView *) webView ;

- (void) webView:(LQWebView *) webView loadFailed:(NSError *) error ;
调用JavaScript方法

调用JS的方法,我这里提供了两种:

/**
 添加需要执行的JS方法

 @param methodName JS 方法名称
 @param param 参数(会转换为Json传递)
 */
- (void) addJavaScriptMethod:(NSString *)methodName param:(NSDictionary *)param ;

/**
 添加需要执行的JS方法
 (携带多个参数的方法,单个参数可使用 ‘addJavaScriptMethod: param:’)

 @param methodName JS 方法名称
 @param params 多个参数(参数值)
 */
- (void) addJavaScriptMethod:(NSString *)methodName params:(NSArray *) params ;

区别只是携带参数方式不同,如果不需要参数,可直接传nil;

执行JavaScript代码

如果需要执行一段JS代码,可直接使用下面的方法:

/**
 添加需要执行的JS代码

 @param js js 代码
 */
- (void) addJavaScript:(NSString *) js ;
- (void) addUserScript:(NSString *)js ;
观察标题/加载进度变化
/**
 添加属性观察者,常用的为title,加载进度

 @param handler 回调
 */
- (void) addProgressObserverWithHandler:(LQWebViewScriptMessageHandler) handler ;
- (void) addTitleObserverWithHandler:(LQWebViewScriptMessageHandler) handler ;
提供原生协议方法供JS调用

如果需要和JS进行交互,可使用下面的方法,将约定的协议方法名称注入到JS中:

/**
 注入JS需要调用的原生协议

 @param name 与H5商定的协议名称
 @param handler 当H5调用该协议方法时的回调
 */
- (void) addScriptMessageHandler:(NSString *)name handler:(LQWebViewScriptMessageHandler) handler ;