对象-在UIWebView中打开PDF吗?

时间:2018-09-07 00:46:07

标签: ios objective-c uiwebview

我正在尝试在UIWebView中打开PDF。出于某种原因,当我从NSString中提取URL,然后在代码中使用NSString时,webview返回空(即使字符串包含url数据)。但是,如果我在完整的URLWithString中键入URL(例如example.com/file.pdf),则会显示应有的PDF。就是说,显示的PDF的链接总是不同的,这就是为什么我使用NSString来填充UIView的PDF链接的原因。知道为什么这行不通吗?

ViewController.m

NSString *browserLink = self.linkProgram[@"body"];
NSURL *url = [NSURL URLWithString:browserLink];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];

2 个答案:

答案 0 :(得分:0)

有时URL损坏或其中包含(let ((a '(1))) (setq b (cons 2 a))) 无法识别的字符,因此不会向您显示您感兴趣的页面/ PDF。请尝试使用(setq b '(2 1)) 尝试删除所有空格,并用网址中可能包含的转义百分比代替。

UIWebView

这通常是可行的,但是过去我自己遇到了一些问题,但这些问题并没有为我解决。相反,我使用了stringByAddingPercentEscapesUsingEncoding方法来替换字符。

NSURL *url = [NSURL URLWithString:
[browserLink stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

编辑

布列塔尼半岛,您遇到的问题是App Transport Security。确保您的stringByReplacingOccurrencesOfString文件包含以下项以应用ATS设置:

NSURL *url = [NSURL URLWithString: 
[browserLink stringByReplacingOccurrencesOfString: @" " withString:@"%20"]];

enter image description here

进行此更改后,以下代码将为您工作。

info.plist

结果

enter image description here

答案 1 :(得分:0)

enter image description here这就是我的用法-

#import <WebKit/WebKit.h>


NSString *urlString = _datadiction[@"doclink"];

    if(urlString != nil || [urlString isEqualToString:@""]){

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

        [webView setBackgroundColor:[UIColor whiteColor]];

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

    }
    else{

        NSLog(@"Error");
    }

#P.S -  Update info.plist with Transport Security... (allow arbitary loads = YES)