zoukankan      html  css  js  c++  java
  • iOS使用UIWebView遇到Error Domain=WebKitErrorDomain Code=101 “The operation couldn’t be completed. (WebKitErrorDomain error 101

    现在在接触iOS开发,今天在调试一个界面加载web页面的问题,发现死活无法加载,浏览器里能正常打开,加上相应代码之后得到了错误信息为:

    2013-04-18 15:05:06.446 Client_DEMO[22889:1a303]  didFailLoadWithError <UIWebView: 0x18ff2160; frame = (18 70; 315 408); autoresize = W+H; layer = <CALayer: 0xc1140a0>> , and err is Error Domain=WebKitErrorDomain Code=101 “The operation couldn’t be completed. (WebKitErrorDomain error 101.)”

    加日志的办法为:

    WebviewDelegat.h 代码如下:

    #import <UIKit/UIKit.h>

    @interface WebviewDelegate : NSObject <UIWebViewDelegate>

    @end

    WebviewDelegat.mm 代码如下:

    #import “WebviewDelegate.h”

    @implementation WebviewDelegate
    -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    NSString * str = [[request URL] absoluteString];
    NSString *urlStr = [str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSArray * strArray = [urlStr componentsSeparatedByString:@":"];
    if([strArray count]>2)
    {
    NSLog(@”webview for %@”,urlStr);
    if ([[strArray objectAtIndex:0] isEqualToString:@”jscall”] ) {
    //这里拦截做些本地的事情
    }
    return NO;
    }else{
    return YES;
    }

    }
    - (void)webViewDidStartLoad:(UIWebView *)webView{
    NSLog(@”webview webViewDidStartLoad %@”,webView.debugDescription);
    }
    - (void)webViewDidFinishLoad:(UIWebView *)webView{
    NSLog(@”webview webViewDidFinishLoad %@”,webView.debugDescription);
    }
    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{

    //把出错信息打出来
    NSLog(@”webview didFailLoadWithError %@ , and err is %@”,webView.debugDescription, error.debugDescription);
    }

    @end

    通过UIWebView的setDelegate方法将其绑定。

    网上搜索之后得知是urlencode有问题,仔细核实了一下url,发现url里有个参数值有竖线,于是知道了是竖线未转义导致。

    比如: http://lizongbo.com/?chid=0|0|618119, 应该为:http://lizongbo.com/?chid=0%7C0%7C618119

    解决办法很简单,对url的字符串做了个替换:

    sUrl=replaceStr(sUrl,”|”,”%7C”);//不转义的话会报错,nd err is Error Domain=WebKitErrorDomain Code=101 “The operation couldn’t be completed. (WebKitErrorDomain error 101.)”

    参考:http://stackoverflow.com/questions/2028379/uiwebkit-error-101

  • 相关阅读:
    phpexcel表的一些设置
    14的路 MySQL的btree索引和hash索引的区别
    mysql导入导出sql文件
    jq的form验证
    Intellij IDEA 创建Web项目并在Tomcat中部署运行
    IntelliJ Idea常用快捷键
    12个JavaScript技巧【转】
    JFinal 源码知识点
    JFinal record类型数据在前台获取
    用JS获取地址栏参数的方法
  • 原文地址:https://www.cnblogs.com/sniper007/p/3566464.html
Copyright © 2011-2022 走看看