Попытка загрузить 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.