Three20 和未签名的证书

Posted

技术标签:

【中文标题】Three20 和未签名的证书【英文标题】:Three20 and Unsigned Certificates 【发布时间】:2011-08-16 13:07:45 【问题描述】:

我正在使用 Three20 库重写我的应用程序。在我的应用程序中,我打开了指向各种网站的链接,其中一些包含具有未签名证书的网站。

在我的非three20 应用程序中,这是我加载此类网站的方式(使用 ASIHTTPRequest):

//=======================================================================================
// Once the correct URL is set, load it using ASIHTTPRequest
-(void)loadURL:(NSURL *)localURL

    [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];

    if(regularLoad)
    
    NSURLRequest *req = [[NSURLRequest alloc] initWithURL:localURL];
    [webView loadRequest:req];
    regularLoad = false;
 else 
    ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:localURL];
    [request setValidatesSecureCertificate:NO];
    [request setDelegate:self];
    [request startAsynchronous]; 
    [request release];
    


//=======================================================================================
// Delegate method for ASIHTTPRequest 
- (void)requestFinished:(ASIHTTPRequest *)request

    // Use when fetching text data
    NSString *responseString = [request responseString];
    webView.scalesPageToFit = YES;
    [webView loadhtmlString:responseString baseURL:request.url];

其中的主要部分是 webView 的 loadHTMLString 方法,这是 Three20 TTWebController 所没有的。

有人能在 Three20 中做到这一点吗?我已经在网上和这里搜索过,但没有找到解决方案。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您可以扩展 TTWebController 类并自己添加缺少的 loadHTMLString 函数。

@interface WebController : TTWebController

/////////////////////////////////////////////////////////////////////////////////////////////
@implementation WebController

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 
  [_webView loadHTMLString:string baseURL:baseURL;];

您需要使用 init 函数创建 Web 控制器,而不是使用 TTNavigator 调用它,因此您将获得对它的引用

【讨论】:

将其添加到three20 作为改进可能是有意义的。问题是使用 TTNavigator 调用该函数将是一个问题..

以上是关于Three20 和未签名的证书的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController解耦---浅析Three20架构

Three20 保存图像?(关闭)

Three20 TTNavigator TTViewController 自动加载XIB

Three20 和 Facebook Graph API 问题

Three20:更改缩略图的 CGSize?

更改 Three20 TTLauncherView 中页面控制点的颜色