我正在尝试在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];
答案 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"]];
进行此更改后,以下代码将为您工作。
info.plist
结果
答案 1 :(得分:0)
#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)