Ios 在Swift中通过WebView下载.pdf或.ppt
我正在使用“webview”组件访问该网站。在网站的未确定部分,我们有.pdf和.ppt格式的文件。 当用户单击这些文件时,我可以下载它们吗?今天,该应用程序只打开.pdf和.ppt,但我想下载它 我的代码是pt_BRIos 在Swift中通过WebView下载.pdf或.ppt,ios,swift,xcode,webview,Ios,Swift,Xcode,Webview,我正在使用“webview”组件访问该网站。在网站的未确定部分,我们有.pdf和.ppt格式的文件。 当用户单击这些文件时,我可以下载它们吗?今天,该应用程序只打开.pdf和.ppt,但我想下载它 我的代码是pt_BR class PortalAcademicoViewController: UIViewController { @IBOutlet weak var webView: UIWebView! override func viewDidLoad() {
class PortalAcademicoViewController: UIViewController {
@IBOutlet weak var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
carregaSite()
}
func carregaSite(){
/*
let url = URL(string: "")
var urlRequest = URLRequest(url: url!)
urlRequest.cachePolicy = .returnCacheDataElseLoad
webView.loadRequest(urlRequest) */
//carregar o arquivo html
let htmlFile = Bundle.main.path(forResource: "portalacademico", ofType: "html")
let html = try? String(contentsOfFile: htmlFile!, encoding: String.Encoding.utf8)
HTTPCookieStorage.shared.cookieAcceptPolicy = .always
self.webView.frame = self.view.bounds
webView.loadHTMLString(html!, baseURL: Bundle.main.resourceURL)
//voltar e avançar entres as paginas do webview
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(recognizer:)))
let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipe(recognizer:)))
swipeLeftRecognizer.direction = .left
swipeRightRecognizer.direction = .right
webView.addGestureRecognizer(swipeLeftRecognizer)
webView.addGestureRecognizer(swipeRightRecognizer)
//fim
}
//trabalhando com avançar e voltar webview
@objc private func handleSwipe(recognizer: UISwipeGestureRecognizer) {
if (recognizer.direction == .left) {
if webView.canGoForward {
webView.goForward()
}
}
if (recognizer.direction == .right) {
if webView.canGoBack {
webView.goBack()
}
}
}
//FIM
}
我认为您应该使用Javascript执行下载任务。 检查func webView中的请求(webView:WKWebView,decidepolicyfornavigationAction…),如果找到下载请求,则调用javascript方法 这里有人已经用wkwebview下载了pdf
您可以将UIWebViewDelegate设置到您的WebView,并在WebView shouldStartLoadWithRequest中检查PDF和PPT文件。webViewShouldStartLoadWithRequest在用户每次单击链接时都被调用
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if reqeust for a PPT or PDF file {
downloadFile()
return false
}
return true
}
旁注:您当前使用的UIWebView已被弃用。应该考虑使用WKWebVIEW。 使用WKWebView下载.pdf和.ppt或任何特定文件,在此处查看我的解决方案
您应该始终用英语编写代码。