Попытка загрузить Webview с PDF, получение ссылки от Parse

Я пытаюсь загрузить PDF-файл меню обеда в веб-представление для обновляемого приложения для средней школы. В настоящее время он может загружать PDF-файл в веб-представление и отображать его очень хорошо, но я хочу ускорить процесс ежемесячного обновления, заставив мое приложение получать ссылку через Parse (который я могу обновить намного быстрее, чем обновить ссылку в приложении). сам с 7-дневным периодом обзора Apple), а затем загрузите 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 ответ

Решение

Мне кажется, что вы не говорите веб-представлению загружать URL, как только он получен из Parse.

Попробуйте добавить следующие строки после self.urlpath = AlaCarteLink в alaCarteUpdate(),

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

Я думаю, что было бы также неплохо добавить функцию, которая специально загружает строку URL в ваше веб-представление, чтобы вы могли вызывать ее как изнутри alaCarteUpdate(), а также loadAddressUrl()и избегайте дублирования 3х строк. Я предположил, что вы загружаете URL в loadAddressURL() так что вы можете показать локальный / кэшированный документ при получении последних из Parse.

Другие вопросы по тегам