iOS-WKWebView使用

使用代码:可直接粘贴到自己项目中使用

.h

#import "BaseViewController.h"

@interface LinkNewsController : BaseViewController
/** 新闻链接 */
@property (nonatomic, strong) NSString *link;

@end

.m

#import <WebKit/WebKit.h>
#import "MBProgressHUD.h"

@interface LinkNewsController ()<WKNavigationDelegate>{
    //蒙版
    MBProgressHUD *_MB;
}
//网页视图
@property (nonatomic, strong) WKWebView *WKWebView;
@end

@implementation LinkNewsController
#pragma mark - 懒载入
-(WKWebView *)WKWebView{
    if (_WKWebView == nil) {
        _WKWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 64, kScreenWidth, kScreenHeight-64)];
        NSLog(@"网页链接-->link:%@",self.link);
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:self.link]];
        [_WKWebView setNavigationDelegate:self];
        [_WKWebView loadRequest:request];
    }
    return _WKWebView;
}
#pragma mark - 视图载入
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self.view addSubview:self.WKWebView];
}
#pragma mark - WKNavigationDelegate
//開始载入
-(void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
    NSLog(@"didStartProvisionalNavigation");
    _MB = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];
    [_MB setMode:MBProgressHUDModeIndeterminate];
    [_MB setLabelText:@"loading..."];
}
//载入成功
-(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
    NSLog(@"didFinishNavigation__");
    [_MB hide:YES];
}
//载入失败
-(void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error{
    NSLog(@"");
    [_MB hide:YES];
}

UIWebView 和 WKWebView 的差别

WKWebView 更快(占用内存可能仅仅有 UIWebView 的1/3~1/4),没有缓存。更为仔细地拆分了 UIWebViewDelegate 中的方法。

WKWebView 是轻量级的 UIWebView。

时间: 2024-10-24 04:16:56

iOS-WKWebView使用的相关文章

iOS WKWebview 网页开发适配指南

iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们咨询. 背景 WKWebView 是苹果在iOS 8中引入的新组件,目的是提供一个现代的支持最新Webkit功能的网页浏览控件,摆脱过去 UIWebView的老.旧.笨,特别是内存占用量巨大的问题.它使用与Safari中一样的Nitro JavaScript引擎,大大提高了页面js执行速度. 切换方

ios wkwebview js alert

1.将WKWebView的WKUIDelegate设置成self.2.将一下三个方法拷贝到项目中. 解决alert方法 -(void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler{ UIAlertC

iOS WKWebView 混合应用开发时代来临 - 嵌入式 JS 的调试成为催化剂

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 早在五年前,在哈尔滨大街小巷的饭馆儿里,经常听到店老板抱怨服务员不好招,钱给少了没人干! 那时还特意做了个分析,2010年倒推30年,正好是198

iOS WKWebView的使用

项目中使用的是WKWebView,以下是从项目中抽取出来的,供想使用WKWebView的朋友们了解. 可以直接修改代码中的的控制器类名和类中的方法名,可更快速的拿到项目中使用. (a) .h定义文件 #import <UIKit/UIKit.h> @interface HZWebViewController : UIViewController @end (b) .m实现文件 #import "HZWebViewController.h" #import <WebKi

iOS WKWebView 那些坑

导语 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView 拥有60fps滚动刷新率.和 safari 相同的 JavaScript 引擎等优势. 简单的适配方法本文不再赘述,主要来说说适配 WKWebView 过程中填过的坑以及善待解决的技术难题. 1.WKWebView 白屏问题 WKWebView 自诩拥有更快的加载速度,更低的内存占用,但实际上 WKWebView 是一

iOS WKWebView学习总结

一.原生与H5页面交互方式 登陆后将token放入wkwebview的cookie中.以后wkwebview也可以同步原生app的登陆状态了. 以下代码   @"document.cookie = 'UID=%@';document.cookie = 'CLIENT=App';document.cookie = 'TOKEN=%@'" 根据自己项目的cookie格式传递. 1 - (void)setNewCookieWithUserInfoToWebView{ 2 3 NSString

iOS WKWebView添加网页加载进度条(转)

一.效果展示 WKWebProgressViewDemo.gif 二.主要步骤 1.添加UIProgressView属性 @property (nonatomic, strong) WKWebView *wkWebView; @property (nonatomic, strong) UIProgressView *progressView; 2.初始化progressView - (void)viewDidLoad { [super viewDidLoad]; //进度条初始化 self.pr

iOS WKWebView ios9中不显示 与 设置UserAgent(用户代理)

项目运行在ios9上需要在info.plist文件中配置加入如下信息, App Transport Security Settings Allow Arbitrary Loads = YES <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 设置 UserAgent(用户代理) // 注册代理

iOS - WKWebView的新特性与使用

WebKit解决了UIWebView存在的内存.加载速度等诸多问题 一.WKWebView新特性 在性能.稳定性.功能方面有很大提升(最直观的体现就是加载网页是占用的内存,模拟器加载百度与开源中国网站时,WKWebView占用23M,而UIWebView占用85M): 允许JavaScript的Nitro库加载并使用(UIWebView中限制): 支持了更多的HTML5特性: 高达60fps的滚动刷新率以及内置手势: 将UIWebViewDelegate与UIWebView重构成了14类与3个协

iOS WKWebView 使用笔记

首先添加Webkit框架 导入#import <WebKit/WebKit.h> #import <WebKit/WebKit.h> @interface WebBrowerViewController ()<WKNavigationDelegate> @property(nonatomic,strong) WKWebView *webView; @end @implementation WebBrowerViewController - (void)viewDidLo