2015-05-04 1 views
0

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

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. 
} 
*/ 

} 

Ссылка хранится в моем приложении Разбор как «webaddress» и не содержит конечных цитат. Добавление их не помогает. Есть идеи?

ответ

0

Мне кажется, что вы не указываете веб-просмотр, чтобы загрузить 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.

+0

Большое вам спасибо! Он работал отлично - я определенно могу немного почистить его. –

Смежные вопросы