ios - Swift 3 Firebase 数据库获取 URLString

标签 ios swift firebase firebase-realtime-database

通过使用 Firebase 数据库,我尝试实时更新此旧代码的 URL 字符串,因为 URL 有时会出错,我必须尽快更新它。我尝试过一些理论,但没有一个得到正确处理。除了下面的代码之外..如果链接被破坏,我就没有实时访问权限来更新它..我需要帮助制作一个可以实时更新它的代码。

<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”更改为任何其他 URL,它也应该更新 webView。

我希望我足够清楚我要实现的目标

@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.

}

最佳答案

好的,我支持你了。 现在,我假设问题是您希望在 URL 实时出现故障时更改它,并且您不知道如何使用 Firebase。

为此,我建议您阅读 Firebase 中的此文档:https://firebase.google.com/docs/database/ios/read-and-write

您也可以像这样逐步执行:

  1. 在 Firebase 上创建一个项目,并将其导入您的 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()
}

关于ios - Swift 3 Firebase 数据库获取 URLString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41423935/

相关文章:

ios - 下载 NKIssue - Newsstand App 时遇到的问题

ios - 转至聊天 View Controller

ios - 添加 curl 参数 CURLOPT_USERPWD IOS

ios - 快速连接到sql server

ios - 退出代码 1 的随机错误 - Xcode 6.1 Swift

ios - swift multilpe pickerView

ios - 为具有等宽标签的水平 StackView 添加分隔 View

firebase - 世博会是否支持 Firebase 电话身份验证?

java - Firestore Recycler 未在应用屏幕上显示任何结果且没有错误

android - 如何将mysql数据库连接到Firebase