il download manager in Safar Io sono implementato da Safari, non da WebKit, quindi non ottieni questa funzionalità "gratuitamente", solo gli strumenti per costruirla.
Per poter scaricare i file, è necessario assegnare un oggetto come WebPolicyDelegate
di WebView
e implementare il metodo delegato webView:decidePolicyForMIMEType:request:frame:decisionListener:
.
In questo metodo, è necessario chiamare uno dei metodi del protocollo WebPolicyDecisionListener
sull'oggetto passato come parametro decisionlistener
al metodo. I tre WebPolicyDecisionListener
metodi di protocollo sono ignore
, use
o download
. Per tutti i tipi MIME che si desidera scaricare, è necessario chiamare download
sull'oggetto passato come parametro listener:
- (void)webView:(WebView *)webView
decidePolicyForMIMEType:(NSString *)type
request:(NSURLRequest *)request
frame:(WebFrame *)frame
decisionListener:(id <WebPolicyDecisionListener>)listener
{
if([type isEqualToString:@"application/zip"])
{
[listener download];
}
//just ignore all other types; the default behaviour will be used
}
È quindi necessario assegnare un oggetto come il download delegato del vostro WebView
. Questo oggetto verrà inviato tutti i messaggi del protocollo NSURLDownloadDelegate
nonché le WebDownload
messaggi delegato. È possibile utilizzare questi messaggi per scegliere dove scaricare il file, nonché per implementare un'interfaccia utente di download manager come Safari.
fonte
2012-02-01 23:18:33
@ (Will Roberts) -I sto cercando la stessa cosa, ma non in grado di scaricare anything.Can mi dici come raggiungere questo obiettivo. Non sono in grado di capire il post di Rob Keniger. –