2017-01-02 88 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

我刚刚根据你的代码进行了调整。我想在这里给你看的是你只需要听一次(第一次)的改变。 –

相关问题