iPhone SDK: UIWebView, чтобы мешать изображениям загрузить/загрузить

Это то, что я наконец нашел для работы. Спасибо за вашу помощь.

#file 1
def main():
    print( "Time\tFalling Distance\n-----------------------" )
    from falling_distance import fallingDistance
    for currentTime in range(1,11):
        print(currentTime, "\t", format(fallingDistance(currentTime),\
            ".2f"))
main()

#file 2

def fallingDistance(fallingTime):
    gravity=9.8
    distance=(1/2)*gravity*(fallingTime**2)
    return distance

Конечно, называли проблемы, которые вызывали много проблем.

Спасибо за вашу помощь!

6
задан Domness 25 February 2009 в 17:12
поделиться

4 ответа

UIWebView - это слабая бледная тень полного WebView WebKit, для которой это несложно. -webView: shouldStartLoadWithRequest: navigationType: вызывается только для навигации. Он не вызывается для каждого запроса, как WebPolicyDelegate на Mac. С помощью UIWebView я бы решил эту проблему следующим образом:

Реализуйте -webView: shouldStartLoadWithRequest: navigationType: и установите его так, чтобы он всегда возвращал NO . Но вы также примете запрос и создадите NSURLConnection . Когда NSURLConnection завершит выборку данных, вы собираетесь просмотреть его на предмет наличия любых тегов IMG и изменить их на любой заполнитель, который вы хотите.

4
ответ дан 17 December 2019 в 04:52
поделиться

Будьте делегатом к UIWebView, затем прервите вызов:

– webView:shouldStartLoadWithRequest:navigationType:

Проверьте значения navigationType в документации. Я полагаю, что Вы будете лучше всего обслуживаться путем возврата NO на navigationType == UIWebViewNavigationTypeOther.

0
ответ дан 17 December 2019 в 04:52
поделиться

действительно ли это заставляет страницу загружаться быстрее? похоже, что изображения все еще загружаются, но мы просто не загружаем их в UIWebView.

или shouldStartLoadWithRequest сначала загружает текст HTML?

0
ответ дан 17 December 2019 в 04:52
поделиться

, расширяя ответ Роба. Я заметил, что когда loadHTMLString: baseURL: и всегда возвращает NO, этот webView: shouldStartLoadWithRequest: navigationType: просто продолжает вызываться. (я подозреваю, что loadHTMLString вызывает другой shouldStartLoadWithRequest).

так что мне пришлось поочередно возвращать YES / NO и я использовал NSScanner для анализа HTML и изменения src = "http: // ..." на src = ""

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (pageHasNoImages==YES)
    {
        pageHasNoImages=FALSE;
        return YES;     
    }
    NSString* newHtml;
    NSString* oldHtml;
    NSData *urlData;
    NSURLResponse *response;
    NSError *error;
    urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    oldHtml=[[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

    newHtml=[self.detail scannerReplaceImg:oldHtml]; // my own function to parse HTML
    newHtml=[self.detail scannerReplaceAds:newHtml]; // my own function to parse HTML
    if (newHtml==nil) 
    {
        NSLog(@"newHtml is nil");
        newHtml=oldHtml;
    }
    [oldHtml release];

    pageHasNoImages=TRUE;
    [web loadHTMLString:newHtml baseURL:request.URL];

    return NO;
}
1
ответ дан 17 December 2019 в 04:52
поделиться