无法在Webview上加载PDF文件并发出警告void SendDelegateMessage(NSInvocation *)

问题描述 投票:0回答:1

我是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文件,并能够打开它们。但是当我尝试打开此特定文件时,它会在控制台上显示上述消息。

两种委托方法

  1. - (void)webViewDidStartLoad:(UIWebView *)webView;
  2. - (void)webViewDidFinishLoad:(UIWebView *)webView;

在我尝试打开另一个PDF文件时被调用。

但是当我尝试打开那个特定的PDf文件时,它只调用第一个委托方法,即只调用-(void)webViewDidStartLoad:(UIWebView *)webView;,而不是另一个。

我无法理解它背后的问题。我在互联网上搜索过它,发现有很多人面临同样的问题,但是他们的解决方案并没有帮助我。我正在使用Xcode 6.2。

ios pdf uiwebview uiwebviewdelegate webviewdidfinishload
1个回答
0
投票

这是一个解决方案。我使用下面的代码,它对我有用。

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];
© www.soinside.com 2019 - 2024. All rights reserved.