Hallo zusammen,
bei der Umstellung einer App (macOS | Objective C) von WebView auf WKWebView gibt es ein Problem.
Ich bekomme die Download-Funktion für das WKWebView einfach nicht zustande.
Kann mir jemand einen Tipp geben, wie ich unter WKWebView einfach erkennen kann, ob eine Datei heruntergeladen werden soll, oder nicht?
Für die Interessierten:
Bisher habe ich Downloads mit folgender Methode verarbeitet
Alles anzeigen
bei der Umstellung einer App (macOS | Objective C) von WebView auf WKWebView gibt es ein Problem.
Ich bekomme die Download-Funktion für das WKWebView einfach nicht zustande.
Kann mir jemand einen Tipp geben, wie ich unter WKWebView einfach erkennen kann, ob eine Datei heruntergeladen werden soll, oder nicht?
Für die Interessierten:
Bisher habe ich Downloads mit folgender Methode verarbeitet
Quellcode
- - (void)webView:(WebView *)sender decidePolicyForMIMEType:(NSString *)type request:(NSURLRequest *)request frame:(WebFrame *)frame
- decisionListener:(id < WebPolicyDecisionListener >)listener
- {
- if ([type isNotEqualTo:@"text/html"])
- {
- [listener use];
- NSURL *url = [request URL];
- NSArray *parts = [[[url absoluteString] stringByRemovingPercentEncoding] componentsSeparatedByString:@"/"];
- NSString *filename = parts[[parts count]-1];
- if([filename rangeOfString:@"?"].location != NSNotFound)
- {
- NSArray *names = [filename componentsSeparatedByString:@"?"];
- filename = names[0];
- }
- NSString *homePath = [self homeDirectory];
- NSString *filePath = [NSString stringWithFormat:@"%@/Downloads/%@", homePath, filename];
- NSLog(@"Pending Download to:%@",filePath);
- DownloadData *downloadData = [[DownloadData alloc] init];
- downloadData.fileName = filename;
- downloadData.fileSize = 0;
- [listDownloadDatas addObject:downloadData];
- upDownCellViewController * cellViewController = [[upDownCellViewController alloc] init];
- [cellViewController initWithData:downloadData];
- [cellViewControllers addObject:cellViewController];
- down = [[NSURLDownload alloc] initWithRequest:request delegate:cellViewController];
- [down setDestination:filePath allowOverwrite:NO];
- [self.downloadTableView reloadData];
- [WebDocument setArrayForKey:listDownloadDatas forKey:@"DownloadData"];
- NSLog(@"Download did start");
- return;
- }
- [listener use];
- NSLog(@"%@", type);
- }