2011-08-16 65 views
0

我正在使用Three20庫重寫我的應用程序。在我的應用程序中,我打開了各種網站的鏈接,其中一些網站包含具有未簽名證書的網站。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;]; 
} 

您需要使用初始化函數來創建網絡控制器和使用TTNavigator,不叫,所以你必須把它的引用

+0

偉大的工作,非常感謝! – RyanG

+0

可能會使感官將其添加到three20作爲一種改進。問題在於這將是使用TTNavigator調用該功能的問題.. – aporat