尝试使用 PDF 加载 Webview,从 Parse 接收链接

Posted

技术标签:

【中文标题】尝试使用 PDF 加载 Webview,从 Parse 接收链接【英文标题】:Attempting to load Webview with PDF, receiving link from Parse 【发布时间】:2015-05-04 22:37:09 【问题描述】:

我正在尝试将午餐菜单 PDF 加载到我正在更新的高中应用程序的 Web 视图中。目前,它可以将 PDF 加载到 Web 视图中并很好地显示它,但我想通过让我的应用程序通过 Parse 接收链接来加快每月更新过程(我可以比更新应用程序中的链接更快地更新本身具有 Apple 的 7 天审查期),然后加载 PDF。目前,根据我整理的内容,我的应用程序不会加载 PDF。这是整个视图:

import UIKit

class AlaCarte_ViewController: UIViewController 
@IBOutlet weak var webviewAlaCarte: UIWebView!

var urlpath = String()

func loadAddressUrl()


    let requestURL = NSURL (string:urlpath)
    let request = NSURLRequest(URL: requestURL!)
    webviewAlaCarte.loadRequest(request)

    alaCarteUpdate()



override func viewDidLayoutSubviews() 
    super.viewDidLayoutSubviews()

    clearPDFBackground(self.webviewAlaCarte)





func clearPDFBackground(webView: UIWebView) 
    var view :UIView?
    view = webView as UIView

    while view != nil 
        if NSStringFromClass(view?.dynamicType) == "UIWebPDFView" 
            view?.backgroundColor = UIColor.clearColor()

        

        view = view?.subviews.first as! UIView?

    


func alaCarteUpdate() 
    var query = PFQuery(className: "AlaCarte")
    query.getObjectInBackgroundWithId("rT7MpEFySU") (AlaCarte: PFObject!, error: NSError!)-> Void in
        if error == nil && AlaCarte != nil 
            println(AlaCarte)
         else 
            println(error)
        

        let AlaCarteLink = AlaCarte["webaddress"] as! String

        self.urlpath = AlaCarteLink

    


override func viewDidLoad() 
    super.viewDidLoad()

    loadAddressUrl()




override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.



/*
// MARK: - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.

*/


该链接作为“网址”存储在我的 Parse 应用程序中,并且不包含结束引号。添加它们没有帮助。有什么想法吗?

【问题讨论】:

【参考方案1】:

在我看来,一旦从 Parse 检索到 URL,您并没有告诉 Web 视图加载 URL。

尝试在alaCarteUpdate() 中的self.urlpath = AlaCarteLink 之后添加以下行。

let requestURL = NSURL (string:self.urlpath)
let request = NSURLRequest(URL: requestURL!)
self.webviewAlaCarte.loadRequest(request)

我认为添加一个专门将 url 字符串加载到 web 视图中的函数也是一个好主意,这样你就可以从 alaCarteUpdate()loadAddressUrl() 内部调用它,并避免重复的 3x 行.我假设您正在加载 loadAddressURL() 中的 URL,以便您可以在从 Parse 检索最新文档时显示本地/缓存文档。

【讨论】:

非常感谢!它工作得很好——不过我绝对可以把它清理一下。

以上是关于尝试使用 PDF 加载 Webview,从 Parse 接收链接的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 WebView 打开 PDF 文件

如何从 URL 在 webView 中加载 PDF?

加载时在webview中显示白页(PDF url)url android

当我在没有 .pdf 内容 webview 的情况下加载时没有可用的预览

webview加载pdf在ios5中损坏

Android Webview如何加载pdf?