devedbox / AXWebViewController

AXWebViewController is a webViewController to browse web content inside applications. It’s a lightweight controller on iOS platform based on WKWebView (UIWebView would be the base Kit under iOS 8.0). It added navigation tool bar to refresh, go back, go forward and so on. It support the navigation style on WeChat. It is a simple-using and convenient web view controller using inside applications.
MIT License
798 stars 134 forks source link

在打开的h5页面中下载一个PDF文件后,想重新在本地加载不成功 #107

Open FrankChung1121 opened 4 years ago

FrankChung1121 commented 4 years ago

目标

在线打开预览有些大一点的PDF文档会加载不出来,即使自己手动拿到h5页面里面的PDF链接下载到本地,然后执行[self.webView loadRequest: request]; 这里面的request中的URL是本地PDF文档的URL,这样也无法加载本地下载后的PDF,请问我在下载PDF文档后,调用[self.webView loadRequest: request]; 方法来重新加载是否正确?如果不正确的话,应该怎么重新加载来刷新当前的页面呢?

预期的结果

最好能实现在线预览PDF大文件,实在不行下载本地后应该支持重新加载,把本地的加载出来

实际的结果

现在实际上是只能在线加载部分小的PDF文档,大一点的就加载不了啦,下载到本地后也无法加载

比如:崩溃的控制台打印

问题复现的步骤

就是我自己自定义了一个控制器继承自你的AXWebViewController,自定义的控制器只是一些其它业务逻辑的处理,然后在打开h5的时候push我自定义的控制器来打开h5页面,h5页面里面层级有些会比较深,可能跳转了好几层,也许某一层中就会有些PDF文档,用户点击是要实现在线预览的。现在的问题是有些小的PDF文档是可以正常预览的,但是有些大的PDF文档就怎么都记载不出来,当然这个大的文档一般也只有几兆而已,页面大概有四五十页左右。我想办法让h5那边在点击PDF预览的时候传递下载链接给我,我监听到传过来的链接后就直接下载到本地沙盒,然后下载后,想刷新当前的webview重新加载本地的PDF,但是感觉刷新没用。我是在下载后调用[self.webView loadRequest: request]; 来刷新的,不知道是不是我的刷新方法对不对,如果不对的话请指点一下应该如何重新加载,谢谢!

示例代码

提供一个突出问题的代码示例或测试用例. 对于量较大的代码示例,链接到外部的gists/repositories是首选. 需要保密的话通过邮件devedbox@qq.com分享,邮件主题写issue的名称. 问题严重的话可以提供完整的Xcode工程最好!

AXWebViewController和工具的版本

echo "\`\`\`
$(sw_vers)

$(xcode-select -p)
$(xcodebuild -version)

$(which pod && pod --version)
$(test -e Podfile.lock && cat Podfile.lock | sed -nE 's/^  - (Realm(Swift)? [^:]*):?/\1/p' || echo "(not in use here)")

$(which bash && bash -version | head -n1)

$(which carthage && carthage version)
$(test -e Cartfile.resolved && cat Cartfile.resolved | grep --color=no realm || echo "(not in use here)")

$(which git && git --version)
\`\`\`" | tee /dev/tty | pbcopy

复制以上内容到终端回车,就可以获取到版本信息. 获取到版本信息之后,请将以上脚本删除!

AXWebViewController版本: 应该是最新的

Xcode版本: 差不多是最新的

iOS/OSX版本: 基本最新

依赖管理工具(cocoapods)版本: 基本最新