iOS技术点iOS开发者js交互

iOS-PAWebVIew基于WKWebView封装的框架

2018-01-10  本文已影响363人  llyouss

PAWebView

PAWebView 之 cookie 管理与同步;

PAWebView 之长按手势;

PAWebView 之POST请求;

一. 前言

       HybirdApp极速业扩展,低成本,高效率,跨平台,灵活易用,规避审核等特性深受各种平台青睐,尤其最近几年流行的响应式设计,HybirdApp都发挥淋漓尽致。如淘宝、美团、支付宝、微信都使用HybirdApp的开发模式来极速扩展业务,如支付宝和微信的支付业务、公众号、城市服务等。

       HybirdApp开发主要框架有WKWebVie、UIWebView。

二. WKWebVIew介绍

       UIWebView自iOS2推出,但该框架存在笨重臃肿,内存占用过高,加载速度慢等诟病,iOS8苹果公司推出WKWebView代替UIWebView。目前的iOS版本兼容基本已经抛弃了iOS7,WKWebView的优势越发明显。

1. WKWebView特点

优点:

缺点:

2. WKWebView结构 image

三. PAWebView封装

       PAWebView是基于WKWebView的封装,实现了JS+Native的调用,常见的网页和客户端处理,支持的系统iOS8以上以上。

       github下载请点击这里。

架构导图

image

1. cookies的同步

image

2. Native与JS交互

3. 兼容POST请求

4. 缓存管理

5. 手势功能

四. PAWebView使用

PAWebView demo下载地址http://download.csdn.net/download/llyouss/10197978

1. 导入PAWebView

#import "PAWebView.h"

2. 使用vc加载网页

 //初始化单例
 PAWebView *webView = [PAWebView shareInstance];
 //打开缓存
 webView.openCache = YES;  
 //加载网页
 [webView loadRequestURL:[NSURL URLWithString: @"https://www.sina.cn"]];

3. 刷新网页

//重新加载网页
 [webView reload]; 
 //无视缓存,重新加载服务器最新的网
 [webView reloadFromOrigin];

4. cookies管理

//设置cookies
 //webView setcookie:<#(NSHTTPCookie *)#>  
 //获取缓存中的cookies
   [webView WKSharedHTTPCookieStorage]; 
 // 删除缓存中所有的cookies
   [webView deleteAllWKCookies]; 

5. 添加JS调用Native的交互事件

/* messageHander实现JS调用Native */
- (void)addMessageHander
{
   //注入交互事件,实现 PAWKScriptMessageHandler 代理
    [webView addScriptMessageHandlerWithName:@[@"AliPay",@"weixin"]];

   //通过block的形式实现
    [webView addScriptMessageHandlerWithName:@[@"AliPay",@"weixin"] observeValue:^(WKUserContentController *userContentController, WKScriptMessage *message) {

       //JS调用OC处理
       NSLog(@"name:%@;body:%@",message.name,message.body);
    }];
}

/* 实现 PAWKScriptMessageHandler 代理 */
- (void)PAUserContentController: (WKUserContentController *) userContentController  didReceiveScriptMessage:(WKScriptMessage *)message{

       //JS调用OC处理 
        NSLog(@"name:%@;body:%@",message.name,message.body);
}

6. Native调用JS

 //方式一、
   [[PAWebView shareInstance] callJS:@"alert('调用JS成功')"];
 //方式二、
   [[PAWebView shareInstance] callJS:@"alert('调用JS成功')" handler:^(id response, NSError *error) {
        NSLog(@"调用js回调事件");
   }];

7. 监听二维码的识别数据

 //二维码识别后返回的二维码数据
   [webView notificationInfoFromQRCode:^(NSString *info) {  
        NSLog(@"二维码数据:%@",info);   
    }];

8. 缓存管理

  // 清除缓存数据
    [webView deleteAllWebCache];
   //清除缓存所有的cookies
    [webView deleteAllWKCookies];

PAWebView 实现过程请查看 demo
CSDN下载地址:http://download.csdn.net/download/llyouss/10197978
github地址:https://github.com/llyouss/PAWeView

上一篇 下一篇

猜你喜欢

热点阅读