2010-11-29 20 views

Répondre

1

Il est appelé plusieurs fois comme vous le dites, vous devez donc prêter attention à ceci:
[actionInformation valueForKey: @"WebActionNavigationTypeKey"]

Cette valeur devrait être l'un des WebNavigationType ENUM:
WebNavigationTypeLinkClicked,
WebNavigationTypeFormSubmitted,
WebNavigationTypeBackForward,
WebNavigationTypeReload,
WebNavigationTypeFormResubmitted,
WebNavigationTypeOther

Vous obtiendrez WebNavigationTypeLinkClicked premier à la suite d'un lien cliqué, et ici vous pouvez décider de charger la page cliquée ou autre chose.
Immédiatement après avoir obtenu WebNavigationTypeOther qui est le chargement de la page, et vous pouvez l'ignorer.

1

Eh bien, dans cette méthode, il est obligatoire de renvoyer une valeur. Vous êtes censé décider si vous acceptez ou non cette URL. Donc, si le WebView va à une page que vous ne voulez pas, vous devriez retourner ignore.

et ont WebView aller à l'autre url: [myWebView setMainFrameURL:otherUrlStr]

Merci

2

Vous devez simplement ajouter [listener ignore] appel de méthode.

- (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id)listener 
{ 
    [listener ignore]; 
    [[myWebView mainFrame] loadRequest:someRequest]; 
}