第三方webview-------FHWebView
来源:互联网 发布:睡不够是什么原因知乎 编辑:程序博客网 时间:2024/06/06 03:48
https://github.com/feihuang89/FHWebView
网上找的第三方webview,FHWebView,作者说的挺牛逼,就是不知道怎么实现出来
#import "FHWebManager.h"
#import "FHWebViewProgressView.h"
#import "UIViewController+NavgationBar.h" //在作者demo中拷进项目
@interface PersonalViewController ()<FHWebManagerDelegate>
@property (nonatomic, strong) FHWebManager *webManager;
@property (nonatomic, strong) FHWebViewProgressView *webProgress;
@end
-(void)dealloc
{
[self.webManager removeAllScriptMessageHandler];
NSLog(@"WKWebViewController页面销毁");
}
-(FHWebManager *)webManager
{
if (!_webManager) {
_webManager = [[FHWebManager alloc] init];
}
return _webManager;
}
-(WKWebView *)webView
{
return self.webManager.webView;
}
-(NSMutableArray *)urlArray
{
return self.webManager.urlArray;
}
-(void)controlTitle:(NSDictionary *)dict{
}
-(void)controlRightInfo:(NSDictionary *)dict{
}
-(void)controlRight:(NSDictionary *)dict{
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.automaticallyAdjustsScrollViewInsets = YES;
//设置导航栏
[self setNavBarType:NavBarTypeDefault];
[self.webManager bindWKWebViewWithFrame:CGRectMake(0, 40, kViewWidth, kViewHeight - 40) delegate:self];
self.webProgress = [[FHWebViewProgressView alloc]initWithFrame:CGRectMake(kViewWidth / 2, kViewHeight / 2, 50, 50)];
// self.webProgress setFadeOutDelay:nstim
[self.view addSubview:self.webProgress];
[self.webManager removeWebkitCache];
[self sendRequest];
}
-(void)sendRequest
{
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"GET"];
[self.webView loadRequest:request];
}
#pragma mark - FHWebManagerDelegate
-(BOOL)webView:(WKWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(WKNavigationType)navigationType
{
return YES;
}
-(void)webViewDidStartLoad:(WKWebView *)webView
{
self.navigationItem.title = self.webView.title ;
// self.webManager setProgressView:[FHWebViewProgressView ]
NSLog(@"%s",__func__);
[self.webProgress setProgress:0.5 animated:YES];
}
-(void)webViewDidFinishLoad:(WKWebView *)webView
{
NSLog(@"%s",__func__);
// [self.navigationController setNavigationBarHidden:YES];
self.navigationItem.title = self.webView.title ;
}
-(void)webView:(WKWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"%s:%@",__func__,error.description);
}
#pragma mark - private function
-(void)leftBtnNavLeftTypeBackClick:(UIButton *)btn
{
if (self.urlArray.count > 1) {
//显示关闭按钮
[self setNavLeftSecondViewWithNavLeftType:NavLeftTypeClose andCustomView:nil];
[self.urlArray removeLastObject];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:self.urlArray.lastObject cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
[request setHTTPMethod:@"GET"];
[self.webView loadRequest:request];
}else{
//隐藏关闭按钮
[self setNavLeftSecondViewWithNavLeftType:NavLeftTypeNone andCustomView:nil];
[self.navigationController popViewControllerAnimated:YES];
}
}
-(void)leftBtnNavLeftTypeCloseClick:(UIButton *)btn
{
//隐藏关闭按钮
[self setNavLeftSecondViewWithNavLeftType:NavLeftTypeNone andCustomView:nil];
[self.navigationController popViewControllerAnimated:YES];
}
#pragma mark - JS交互
- (void)controlLeft:(NSDictionary *)dict
{
NSLog(@"%@",dict);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- 第三方webview-------FHWebView
- 第三方webview---SPWebView
- android webview 打不开第三方app
- Android中的webview调用第三方支付
- Android WebView 跳转第三方App
- 部分手机使用WebView第三方登陆没反应
- webview 调用第三方浏览器的原因及解决办法
- ios开发-webview第三方框架的总结
- Android中WebView,打开第三方应用的问题
- Android中WebView,打开第三方应用的问题
- Android中WebView,打开第三方应用的问题
- Android WebView第三方网站注入在线JS地址
- android中WebView关闭打开第三方浏览器
- 使用webview调用第三方登录时候遇到的坑
- Android中WebView,打开第三方应用的问题
- Android 解决webview中下载第三方APP的问题
- 第三方
- 第三方
- android 设备调试Installation failed with message INSTALL_CANCELED_BY_USER.
- JDK动态代理的实现及原理
- 用Eclipse创建一个android项目
- 拉格朗日乘数法 对y的偏导数的推导 (有点牵强,作为理解吧)
- Springmvc 4.x使用@ResponseBody出现406问题
- 第三方webview-------FHWebView
- 简单实现JPA实体继承映射
- Extjs5 tree扩展----treepanel树组件
- QuickField 4.2
- 使用 Office 365 PowerShell 管理用户帐户和许可证(十)使用 Office 365 PowerShell 创建用户帐户
- linux vmstat
- Jquery mouseover 使用 ---图片放大功能
- php设置session入库
- 深入理解JAVA虚拟机(一)内存区域与内存溢出异常