2017-01-02 87 views
0

通過使用Firebase數據庫我試圖用RealTime更新這個舊的代碼的URL字符串,因爲URL有時會變壞,我必須儘快更新它。我嘗試了一些理論,其中沒有一個正在被正確處理。除了下面的代碼..如果鏈接被破壞的ID沒有實時訪問來更新它..我需要幫助做一個代碼,它會更新它實時。Swift 3 Firebase數據庫抓取URLString

<a target="_blank" href="https://imageshack.com/i/plyd7Ztkp"><img src="http://imagizer.imageshack.us/v2/640x480q90/921/yd7Ztk.png" border="0"></a>

<a target="_blank" href="https://imageshack.com/i/plMFPoMRp"><img src="http://imagizer.imageshack.us/v2/640x480q90/921/MFPoMR.png" border="0"></a>

從上面的圖片,如果我是從 「www.google.com」 更改爲任何其他網址也應該更新web視圖。

我希望我足夠的什麼,我試圖完成

@IBAction func zhwandoontv(_ sender: Any) { 

    webView.frame=self.view.bounds; 
    webView.allowsInlineMediaPlayback = true; 
    webView.mediaPlaybackRequiresUserAction = false; 

    let tolourl = URL(string: "http://38.99.146.180:7777/Zhwandoon.m3u8?user=sgls128196012&session=a9a822ced3f0211c85d67487a252d6497bef40a6bd64e0f01c332de5c9369") 
    let toloURLRequest = URLRequest(url: tolourl!) 
    webView.loadRequest(toloURLRequest) 

} 

更新明確:

} 

@IBOutlet weak var webView: UIWebView! 

var ref:FIRDatabaseReference? 
var databaseHandle:FIRDatabaseHandle? 

var postData = [String]() 


@IBAction func Bahartv(_ sender: Any) { 

    ref = FIRDatabase.database().reference() 


    databaseHandle = ref?.child("realtimeURL").observe(.childAdded, with: { (snapshot) in 
     let post = snapshot.value as? String 

     if let actualPost = post { 
      self.postData.append(actualPost) 

     } 
    }) 


    webView.frame=self.view.bounds; 
    webView.allowsInlineMediaPlayback = true; 
    webView.mediaPlaybackRequiresUserAction = false; 

    let tolourl = self.postData.append(actualPost) 
    let toloURLRequest = URLRequest(url: tolourl!) 
    webView.loadRequest(tolourl) 

} 


override func viewDidLoad() { 
    super.viewDidLoad() 


    ref = FIRDatabase.database().reference() 

    databaseHandle = ref?.child("realtimeURL").observe(.childAdded, with: { (snapshot) in 
     let post = snapshot.value as? String 

     if let actualPost = post { 
      self.postData.append(actualPost) 

     } 
    }) 

    // Do any additional setup after loading the view. 

} 
+0

有人嗎?謝謝對不起... – Sadin

回答

0

好,我明白你的背部。 現在,我假設問題在於,如果您想要實時更改網址,並且不知道如何使用Firebase,

對於這一點,我建議你閱讀火力地堡此文檔:https://firebase.google.com/docs/database/ios/read-and-write

你可以這樣做,也是一步一步這樣的:

  1. 創建於火力地堡的一個項目,將其導入到您的iOS項目。
  2. 在Firebase實時數據庫上創建一個名爲realtimeURL的節點。
  3. 轉到您的zhwandoontv函數,監聽realtimeURL更改,然後將其傳遞給請求。
  4. 刷新請求以及您的webView。做得好。

更新: 基礎上你的代碼,我可以調整這樣的代碼:

@IBOutlet weak var webView: UIWebView! 

var ref:FIRDatabaseReference? 
var databaseHandle:FIRDatabaseHandle? 

func loadWebViewWithURL(url: String) { 
    webView.frame=self.view.bounds; 
    webView.allowsInlineMediaPlayback = true; 
    webView.mediaPlaybackRequiresUserAction = false; 

    let toloURLRequest = URLRequest(url: url) 
    webView.loadRequest(tolourl) 
} 

func initDatabaseHandle() { 
    if ref == nil { 
     ref = FIRDatabase.database().reference() 
    } 

    databaseHandle = ref?.child("realtimeURL").observe(.value, with: { (snapshot) in 
     if let post = snapshot.value as? String 
     { 
      self.loadWebViewWithURL(post) 
     } 
    }) 
} 

@IBAction func Bahartv(_ sender: Any) { 
    if databaseHandle == nil { 
     // re-init the handle 
     initDatabaseHandle() 
    } 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 
    initDatabaseHandle() 
} 
+0

謝謝你的一步一步,你可以在代碼中解釋它嗎?如果可能的話。我知道你有我的背影! – Sadin

+0

嗯,代碼沒有錯誤,但我注意到,當我按下功能按鈕。 webview不加載它,就像沒有出現。 – Sadin

+0

我剛剛根據你的代碼進行了調整。我想在這裏給你看的是你只需要聽一次(第一次)的改變。 –

相關問題