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

时间:2017-07-21 11:09:39

标签: ios pdf uiwebview uiwebviewdelegate webviewdidfinishload

我是iOS新手,当我在var data = <?php echo $data ?>; 打开PDF时,我会在控制台中收到这样的警告。

UIWebView

以下是从NSBundle

在Webview上打开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>)

这里的visionweb是我的UIWebview对象。

我尝试使用相同的代码打开其他PDF文件,并能够打开它们。但是当我尝试打开此特定文件时,它会在控制台上显示上述消息。

两个委托方法

  1. visionweb.delegate=self; NSURL *targetURL = [[NSBundle mainBundle] URLForResource:@"a0" withExtension:@"pdf"]; NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; [visionweb loadRequest:request]; [self.view addSubview:visionweb];
  2. - (void)webViewDidStartLoad:(UIWebView *)webView;
  3. 当我尝试打开另一个PDF文件时,

    被调用。

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

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

1 个答案:

答案 0 :(得分: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];