美文网首页
WKWebView使用中遇到的坑

WKWebView使用中遇到的坑

作者: zhuzhilong | 来源:发表于2019-05-10 17:17 被阅读0次

WKWebView使用中遇到的坑

1.在调试中,H5内置弹出框, 在原生中运行不弹出

解决方案:加上下面几行代码

- (void)webView:(WKWebView*)webView runJavaScriptAlertPanelWithMessage:(NSString*)message initiatedByFrame:(WKFrameInfo*)frame completionHandler:(void(^)(void))completionHandler{

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert];

    [alertControlleraddAction:([UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        completionHandler();

    }])];

    [self presentViewController:alertController animated:YES completion:nil];

}

- (void)webView:(WKWebView*)webView runJavaScriptConfirmPanelWithMessage:(NSString*)message initiatedByFrame:(WKFrameInfo*)frame completionHandler:(void(^)(BOOL))completionHandler{

    //    DLOG(@"msg = %@ frmae = %@",message,frame);

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"提示" message:message?:@"" preferredStyle:UIAlertControllerStyleAlert];

    [alertControlleraddAction:([UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {

        completionHandler(NO);

    }])];

    [alertControlleraddAction:([UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        completionHandler(YES);

    }])];

    [self presentViewController:alertController animated:YES completion:nil];

}

- (void)webView:(WKWebView*)webView runJavaScriptTextInputPanelWithPrompt:(NSString*)prompt defaultText:(NSString*)defaultText initiatedByFrame:(WKFrameInfo*)frame completionHandler:(void(^)(NSString*_Nullable))completionHandler{

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:prompt message:@"" preferredStyle:UIAlertControllerStyleAlert];

    [alertControlleraddTextFieldWithConfigurationHandler:^(UITextField*_NonnulltextField) {

        textField.text= defaultText;

    }];

    [alertControlleraddAction:([UIAlertAction actionWithTitle:@"完成" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

        completionHandler(alertController.textFields[0].text?:@"");

    }])];

    [self presentViewController:alertController animated:YES completion:nil];

}

2.设置cookie ,有时候H5会获取不到

解决办法:

-(void)setTheCookieOfWebView

{

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:self.baoFu_token,@"token", nil];

    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

    //先删除Userid和isbind的cookie

    [_webView evaluateJavaScript:[NSString stringWithFormat:@"document.cookie ='json=%@'",[UIViewController convertToJsonData:dic]] completionHandler:nil];

    NSArray*cookieArray = [NSArrayarrayWithArray:[cookieStoragecookies]];

    for(idobjincookieArray) {

        [cookieStoragedeleteCookie:obj];

    }

}

+(NSString*)convertToJsonData:(NSDictionary*)dict{

    NSError*error;

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions  error:&error];

    NSString*jsonString;

    if(!jsonData) {

        NSLog(@"%@",error);

    }else{

        jsonString = [[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];

    }

    NSMutableString*mutStr = [NSMutableStringstringWithString:jsonString];

    NSRangerange = {0,jsonString.length};

    //去掉字符串中的空格

    [mutStrreplaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range];

    NSRangerange2 = {0,mutStr.length};

    //去掉字符串中的换行符

    [mutStrreplaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2];

    returnmutStr;

}

相关文章

  • WKWebView使用中遇到的坑

    WKWebView使用中遇到的坑 1.在调试中,H5内置弹出框, 在原生中运行不弹出 解决方案:加上下面几行代码 ...

  • iOS WKWebView与web交互

    WKWebView使用遇到的坑,WKWebView返回向上移,代理报错,返回页面报错 解决WKContentVie...

  • WKWebView使用遇到的一些坑

    WKWebView使用遇到的坑 简介 使用WKWebView一段时间,发现它和UIWebView的一些区别之处,有...

  • 使用WKWebView遇到的坑

    1、UIWebView 有属性 scalespageToFit,设置为YES,可以自动对页面进行缩放以适应屏幕,W...

  • WKWebView使用遇到的坑

    1、创建完,运行不显示 原因是IOS9 SDK 中默认不再支持访问非 HTTPS 的地址,具体可参考www.coc...

  • WKWebView使用遇到的坑

    1. ios9以前版本读取本地HTML的问题 当使用loadRequest来读取本地的HTML时,WKWebVie...

  • WKWebView的一些问题

    WKWebView 报错unsupported URL 最近在使用wkwebview 使用的时候坑比较多,比如在自...

  • WKVebView

    使用WKWebView替换UIWebView WKWebView加载进度条 WKWebView从入门到趟坑 WKW...

  • 使用WKWebView 遇到的问题

    参考:WKWebView 那些坑WKWebView使用指南WKWebView 是由Apple从iOS 8 开始提供...

  • WKWebView开发中遇到的坑

    1.WKWebView白屏问题 WKWebView自我拥有更快的加载速度,更低的内存占用,但实际上WKWebVie...

网友评论

      本文标题:WKWebView使用中遇到的坑

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