正在尝试使用 PDF 加载 Webview,从 Parse 接收 link

Attempting to load Webview with PDF, receiving link from Parse

我正在尝试将午餐菜单 PDF 加载到我正在更新的高中应用程序的 Web 视图中。目前,它可以将 PDF 加载到 Web 视图中并正常显示,但我想通过让我的应用程序通过 Parse 接收 link 来加快每月更新过程(我可以比更新更快地更新link 在应用程序本身中加上 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.
}
*/

}

link 在我的 Parse 应用程序中存储为 "webaddress",并且不包含结束引号。添加它们没有帮助。有什么想法吗?

在我看来,您并没有告诉 Web 视图在从 Parse 检索到 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 检索最新文档时显示 local/cached 文档。