Можем ли мы открыть PDF-файл из UIWebView?
106
Да, это можно сделать с помощью UIWebView.
Если вы пытаетесь отобразить PDF-файл, находящийся где-то на сервере, вы можете просто загрузить его напрямую в веб-представление:
Цель-C
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];
NSURL *targetURL = [NSURL URLWithString:@"https://www.example.com/document.pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];
[self.view addSubview:webView];
Swift
let webView = UIWebView(frame: CGRect(x: 10, y: 10, width: 200, height: 200))
let targetURL = NSURL(string: "https://www.example.com/document.pdf")! // This value is force-unwrapped for the sake of a compact example, do not do this in your code
let request = NSURLRequest(URL: targetURL)
webView.loadRequest(request)
view.addSubview(webView)
Или, если у вас есть PDF-файл, связанный с вашим приложением (в этом примере с именем «document.pdf»):
Цель-C
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];
NSURL *targetURL = [[NSBundle mainBundle] URLForResource:@"document" withExtension:@"pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[webView loadRequest:request];
[self.view addSubview:webView];
Swift
let webView = UIWebView(frame: CGRect(x: 10, y: 10, width: 200, height: 200))
let targetURL = NSBundle.mainBundle().URLForResource("document", withExtension: "pdf")! // This value is force-unwrapped for the sake of a compact example, do not do this in your code
let request = NSURLRequest(URL: targetURL)
webView.loadRequest(request)
view.addSubview(webView)
Вы можете найти дополнительную информацию здесь: Технический QA1630: Использование UIWebView для отображения выбранных типов документов .
UIWebview
s также может загрузить метод.pdf
usingloadData
, если вы приобретете его какNSData
:источник
используйте это для открытия файла PDF в веб-просмотре
источник
источник
Быстрая версия:
источник
Обновление ответа Мартина Аллеуса, чтобы получить полноэкранный режим, будь то телефон или iPad, без необходимости жесткого кода:
источник
Swift 4
источник
источник
источник
WKWebView : я считаю, что этот вопрос - лучшее место, чтобы сообщить людям, что им следует начать использовать WKWebview, поскольку UIWebView теперь устарел .
Цель C
Swift
Я не копировал этот код непосредственно из Xcode, поэтому он может содержать синтаксическую ошибку. Пожалуйста, проверяйте при использовании.
источник