通过使用 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
您也可以像这样逐步执行:
- 在 Firebase 上创建一个项目,并将其导入您的 iOS 项目。
- 在 Firebase 实时数据库上创建一个名为 realtimeURL 的节点。
- 转到 zhwandoontv 函数,监听 realtimeURL 变化,然后将其传递给请求。
- 刷新请求以及您的 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/