Как получить имя PDF с помощью UIWebView?

В моем iOS-приложении (сделанном в Objective-C) я печатаю документ PDF в UIWebView,
это PDF отображается на моей странице PHP с помощью "Content-type: application/pdf"

Я хочу получить мой PDF имя для сохранения в моем устройстве после этого.

Как я мог сделать это, пожалуйста?

Чуть ниже кода, который я использую для подключения к webservice и распечатать мой документ PDF в моем UIWebview

self.factureWebView.delegate = self;

NSURL *lienFacture = [NSURL URLWithString:@"http://aaaa.com/app/facture.php"];requete = [[NSMutableURLRequest alloc]initWithURL:lienFacture cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

[requete setHTTPMethod:@"POST"];

NSString *post =[[NSString alloc] initWithFormat:@"idC=%@&mdpC=%@&idF=%@",idConnexion, mdpConnexion, idFacture];
NSData *data = [post dataUsingEncoding:NSUTF8StringEncoding];

[requete setHTTPBody:data];

[self.factureWebView loadRequest:requete];

А это мой php файл

$idConnexion = $_POST['idConnexion'];
$mdpConnexion = $_POST['mdpConnexion'];
$idFacture = $_POST['idFacture'];

ini_set('soap.wsdl_cache_enabled', '0');

$wsdlURL = 'https://xxxx.com/Balm/Services_2_0.wsdl';
$ns = 'https://erp.xxxx.com/developerKey/';

$devKey = 'a1b2c3';

$soap = new SoapClient($wsdlURL);
$soap->__setSoapHeaders(new SoapHeader($ns, 'developerKey', $devKey));

$params = new stdClass();
$params->context = 'Client';
$params->login = $idConnexion;
$params->password = $mdpConnexion;

$res = $soap->GetContactDevKey($params);

$devKey2 = $res->result;

$soap2 = new SoapClient($wsdlURL);
$soap2->__setSoapHeaders(new SoapHeader($ns, 'developerKey', $devKey2));

$res2 = $soap2->Authenticate($params);

$token = $res2->result->VisitorToken;

$demandsParam = new stdClass();
$demandsParam->visitorKey = $token;
$demandsParam->printType = 'PrintBill';
$demandsParam->id = $idFacture;
$factures = $soap2->GetClientPrint($demandsParam);

echo $factures->result->Content;

1

Решение

Вы можете использовать метод делегирования ниже, чтобы найти название PDF. Не забудьте установить делегат webView. Ниже метод будет вызываться каждый раз, когда вы нажимаете на любую вещь на веб-странице. Так что, проверяя PDFURL, нажимая на PDF в веб-просмотре, вы получите название PDF! ..

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

NSLog(@"@@@@@@@@@@@@@Navigation Type is:%ld",navigationType);
NSLog(@"url: %@ Scheme:%@ Host:%@", [[request URL] absoluteString], request.URL.scheme ,request.URL.host);

NSString *pdfURL =[NSString stringWithFormat:@"%@",request.URL];
NSLog(@"@@@@@@@@@@@@@PDF URL String:%@",pdfURL);

return YES;
}

Вы можете получить URL-адрес PDF сверху … Вы можете вырезать из него имя PDF и сохранять его локально.

Надеюсь, это поможет вам!

0

Другие решения

Получите ваш локально сохраненный PDF список имен файлов ..

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *manager = [NSFileManager defaultManager];
NSArray *fileList = [manager contentsOfDirectoryAtPath:documentsDirectory
error:nil];
// List file by name sort
NSLog(@"\n File list => %@",fileList);

//---- Sorting files by extension
NSArray *filePathsArray =
[[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory
error:nil];
//NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF EndsWith '.pdf'"]; //Change your extension here file sorted by your extension
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"pathExtension='pdf'"];
filePathsArray =  [filePathsArray filteredArrayUsingPredicate:predicate];
NSLog(@"\n\n Sorted files by extension %@",filePathsArray);
0

По вопросам рекламы [email protected]