Три20 и неподписанные сертификаты - PullRequest
0 голосов
/ 16 августа 2011

Я переписываю свое приложение, используя библиотеку 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];
}

Основная часть этого метода - loadHTMLString webView, который делает Three20 TTWebController.не иметь.

Кто-нибудь смог достичь этого в Three20?Я искал сеть и здесь, но не нашел решений.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 16 августа 2011

Вы можете расширить класс TTWebController и добавить недостающую функцию loadHTMLString самостоятельно.

@interface WebController : TTWebController

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

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

Вам потребуется создать веб-контроллер с помощью функции init, а не вызывать его с помощью TTNavigator, поэтому у вас будетссылка на него

...