Попытка загрузить 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 как «веб-адрес» и не содержит кавычек. Добавление их не помогает. Любые идеи?


person John Harding II    schedule 04.05.2015    source источник


Ответы (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() и избегать дублирования строк 3x. Я предположил, что вы загружаете URL-адрес в loadAddressURL(), чтобы вы могли показать локальный/кешированный документ при получении последней версии из Parse.

person rickerbh    schedule 05.05.2015
comment
Большое спасибо! Это сработало отлично - я определенно могу немного почистить его. - person John Harding II; 05.05.2015