美文网首页
再会WKWebView

再会WKWebView

作者: 奶茶007 | 来源:发表于2016-12-14 17:17 被阅读20次

有关WKWebView处理cookie问题,又多次测试,发现并不需要在 初识WKWebView那么麻烦,有更简便的方法,实例代码如下:

WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
    WKUserContentController* userContentController = WKUserContentController.new;
    WKUserScript * cookieScript = [[WKUserScript alloc]
                                   initWithSource:[self obainSettingCookieJs]
                                   injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];
    [userContentController addUserScript:cookieScript];
   userContentController;

- (NSString *)obainSettingCookieJs{
    NSString *JSFuncString =
    @"function setCookie(name,value,expires)\
    {\
    var oDate=new Date();\
    oDate.setTime(oDate.getTime()+(expires*24*3600*1000));\
    document.cookie=name+'='+value+';expires='+oDate+';path=/';\
    }\
    function getCookie(name)\
    {\
    var arr = document.cookie.match(new RegExp('(^| )'+name+'=([^;]*)(;|$)'));\
    if(arr != null) {return unescape(arr[2]); } else { return null;}\
    }\
    function delCookie(name)\
    {\
    var exp = new Date();\
    exp.setTime(exp.getTime() - 1);\
    var cval=getCookie(name);\
    if(cval!=null) document.cookie= name + '='+cval+';expires='+exp.toGMTString();\
    }";
    
    //拼凑js字符串
    //取出 JSESSIONID  uid token
    //    [SettingBaseTool deleteDatasByKey:jessionString];
    //     [SettingBaseTool deleteDatasByKey:uidString];
    //     [SettingBaseTool deleteDatasByKey:tokenString];
    NSMutableString *JSCookieString = JSFuncString.mutableCopy;
    //把cookie所有值传过去
    NSMutableArray *allCookiesArray = [SettingBaseTool queryAllCookies];
    for (NSString *cookiesString in allCookiesArray) {
        NSArray *cookiesArray = [cookiesString componentsSeparatedByString:kCookieConnectString];
        if ([cookiesArray isNotEmpty]&&(cookiesArray.count == 2)) {
            NSString *keyString = cookiesArray[0];
            NSString *valueString = cookiesArray[1];
            if ([valueString isNotEmpty]) {
                NSString *excuteJSString = [NSString stringWithFormat:@"setCookie('%@', '%@', 15);", keyString, valueString];
                [JSCookieString appendString:excuteJSString];
            }
        }
        
        
        
    }
    return JSCookieString;
}

注意点:
1,通过WKUserScript
2,设置cookie格式

相关文章

  • 再会WKWebView

    有关WKWebView处理cookie问题,又多次测试,发现并不需要在 初识WKWebView那么麻烦,有更简...

  • 再会,再会!

    陆陆续续生活了四年的小岛,明天就要告别了。 我们住的小院左右还有两三家住户,但都不算熟悉,唯一的朋友就是比我们早来...

  • 再会,再会!

    2020年5月9日,锦大15周年校庆的日子。8:30打开YY直播,武哥作为主播带我们云参观锦大的实验楼,宽大宏伟;...

  • iOS-WKWebView(post请求的一个Bug)

    WKWebView WKWebView使用 WKWebView操作JSWKWebView加载JS WKWebVie...

  • WKWebView(oc与js交互详解)

    目录-WKWebView 初始化-WKWebView 加载资源-WKWebView WKNavigationDel...

  • WKWebView API精讲(OC)

    WKWebView 看看WKWebView的头文件声明: WKWebView // webview 配置,具体看下...

  • 再会 简书

    再会再会再会, 无端几层滋味。 悠扬一个转身, 期待化茧的美。

  • iOS WKWebView的基本使用

    级别:★☆☆☆☆标签:「WKWebView」「WKWebView加载新页面失败」「WKWebView 弹框没有显示...

  • WKWebView 点击链接无效

    -(WKWebView *)webView:(WKWebView *)webView createWebViewW...

  • WKWebview使用攻略

    WKWebview使用攻略WKWebview使用攻略

网友评论

      本文标题:再会WKWebView

      本文链接:https://www.haomeiwen.com/subject/wvoimttx.html