无法在Webview上加载PDF文件并发出警告void SendDelegateMessage(NSInvocation *)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在Webview上加载PDF文件并发出警告void SendDelegateMessage(NSInvocation *)相关的知识,希望对你有一定的参考价值。
我是ios的新手,当我在UIWebView
中打开PDF时,我会在控制台中收到这样的警告。
void SendDelegateMessage(NSInvocation *): delegate (webView:didFirstLayoutInFrame:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
2017-07-11 16:55:38.304119+0530 appname[1334:540218] libMobileGestalt MobileGestalt.c:550: no access to InverseDeviceID (see <rdar://problem/11744455>)
以下是从NSBundle在Webview上打开PDF文件的代码
visionweb.delegate=self;
NSURL *targetURL = [[NSBundle mainBundle] URLForResource:@"a0" withExtension:@"pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[visionweb loadRequest:request];
[self.view addSubview:visionweb];
这里的visionweb是我的UIWebview对象。
我尝试使用相同的代码打开其他PDF文件,并能够打开它们。但是当我尝试打开此特定文件时,它会在控制台上显示上述消息。
两种委托方法
- (void)webViewDidStartLoad:(UIWebView *)webView;
和- (void)webViewDidFinishLoad:(UIWebView *)webView;
在我尝试打开另一个PDF文件时被调用。
但是当我尝试打开那个特定的PDf文件时,它只调用第一个委托方法,即只调用-(void)webViewDidStartLoad:(UIWebView *)webView;
,而不是另一个。
我无法理解它背后的问题。我在互联网上搜索过它,发现有很多人面临同样的问题,但是他们的解决方案并没有帮助我。我正在使用Xcode 6.2。
答案
这是一个解决方案。我使用下面的代码,它对我有用。
termsWebView.delegate = self;
NSString *path = [[NSBundle mainBundle]
pathForResource:@"Terms_of_Use_20170523" ofType:@"docx"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[termsWebView loadRequest:request];
以上是关于无法在Webview上加载PDF文件并发出警告void SendDelegateMessage(NSInvocation *)的主要内容,如果未能解决你的问题,请参考以下文章
将 PDF 保存到磁盘;不会在 WebView Offline 中加载
当我在 WEBVIEW 应用程序中单击网站服务器中的链接时,PDF 未加载