Открытие PDF-файлов в WKWebView Цель c - PullRequest
1 голос
/ 30 марта 2019

У меня проблемы с визуализацией содержимого PDF-файлов с помощью WKWebView и цели c.Извините, я не знаком со Swift.Вот код, но он показывает пустую страницу и возвращает следующую ошибку:

Ошибка домена = NSCocoaErrorDomain Code = 261 "Файл« Sample1.pdf »не может быть открыт с использованием кодировки текстаЮникод (UTF-8).

NSString *filePath;
filePath = [[NSBundle mainBundle] pathForResource:@"Sample1" ofType:@"pdf"];

NSString *TextToBeDisplayed;
NSError *err = nil;
TextToBeDisplayed = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&err];

if (TextToBeDisplayed == nil)
{
    NSLog(@"Case 1");
    NSLog(@"Error reading %@: %@", filePath, err);
}
else
{
    NSLog(@"Case 2");
    NSLog(@"File found");
}

if(TextToBeDisplayed != nil || [TextToBeDisplayed isEqualToString:@""])
{
    NSLog(@"Case 3");

    WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
    WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
    NSURLRequest *nsrequest=[NSURLRequest requestWithURL:[NSURL URLWithString:TextToBeDisplayed]];

    [webView setBackgroundColor:[UIColor whiteColor]];

    [webView loadRequest:nsrequest];
    [self.view addSubview:webView];
    //[InstructionsTextView addSubview:webView];
}
else
{
    NSLog(@"Case 4");
    NSLog(@"Error");
    //Error Domain=NSCocoaErrorDomain Code=261 "The file “Sample1.pdf” couldn’t be opened using text encoding Unicode (UTF-8).
}

1 Ответ

1 голос
/ 30 марта 2019

Вам не нужно делать это:

TextToBeDisplayed = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&err];

Также в этом методе вы получите не NSURLRequest, а какой-то текст из вашего PDF-файла, который пытается преобразовать в NSURLRequest

NSURLRequest *nsrequest=[NSURLRequest requestWithURL:[NSURL URLWithString:TextToBeDisplayed]];

Все, что вам нужно, это:

    NSString *filePath;
    filePath = [[NSBundle mainBundle] pathForResource:@"Sample1" ofType:@"pdf"];

    WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
    WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
    NSURLRequest *nsrequest=[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]];


    [webView setBackgroundColor:[UIColor whiteColor]];

    [webView loadRequest:nsrequest];
    [self.view addSubview:webView];
...