“如何在 Swift 中加载 WebView 之前从 Firebase 数据库中检索 url?”

巴布莱克

我正在使用webViewFirebase 作为数据库构建应用程序应该用于加载的 urlwebView应该来自数据库。

我已经webView正确实现了Firebase 和 Firebase,但问题是我的 webView 没有加载数据库中的 url,而是加载了 var 声明中声明的 url。

似乎 viewDidLoad 优先调用方法 webView 在关闭数据库观察方法之前加载

如果我查看控制台,我可以清楚地看到一切正常,但是应该用于加载的 url 是在加载webview后从数据库中检索的webview......这应该在我将检索方法放在 BEFORE 之前完成。 .

class ViewController:  UIViewController {

    var dbRef: DatabaseReference!
    var nextUrl = "https://www.google.co.uk/"

    func retrieveUrl () {
        dbRef = Database.database().reference().child("EXAMPLE")

        dbRef.observe(.value) { (snapshot) in
            let value = snapshot.value as! NSDictionary
            let url = value["url"]!
            self.nextUrl = (url as! String)
            print (nextUrl)
        }
        print ("function observe is called")
    }

    override func viewDidLoad () {
        super.viewDidLoad()
        retrieveUrl()
        print ("webview is about to load")
        let request = URLRequest (url: URL(string: nextUrl)!)
        self.webView.load(request)
        self.webView.addObserver(self, forKeyPath: #keyPath(WKWebView.isLoading), options: .new, context: nil)
    }
}

在控制台中,我可以看到在 nextUrl 之前打印了“webview 即将加载”...这对我来说很奇怪

阿布·乌尔·哈桑 |

您应该在 firebase 观察者的回调中加载 webView。

因为你是在 firebase 网络调用它的异步工作之后立即加载 webView,所以 webView 尝试加载 nextUrl 是否为空,为了防止异步行为,你必须等待 nextUrl 或者你应该在 firebase 回调中加载 webView 像下面这样

class ViewController:  UIViewController {
    var dbRef: DatabaseReference!
    var nextUrl = "https://www.google.co.uk/"
    func retrieveUrl () {
        dbRef = Database.database().reference().child("EXAMPLE")
        dbRef.observe(.value) {
            (snapshot) in
            let value = snapshot.value as! NSDictionary
            let url = value["url"]!
            self.nextUrl = (url as! String)
            print (nextUrl)
            print ("webview is about to load")
            let request = URLRequest (url: URL(string: nextUrl)!)
            self.webView.load(request)
            self.webView.addObserver(self, forKeyPath: #keyPath(WKWebView.isLoading), options: .new, context: nil)
        }
        print ("function observe is called")
    }

    override func viewDidLoad () {
        super.viewDidLoad()
        retrieveUrl()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在Swift中加载GIF图像?

来自分类Dev

在通知栏NSPopover中加载WebView URL

来自分类Dev

如何更改WebView中的URL加载?

来自分类Dev

加载图像之前如何在webview中实现进度对话框?

来自分类Dev

如何在Swift中的UIWebView中加载本地PDF

来自分类Dev

如何在WebView中加载活动的HTML

来自分类Dev

如何在iOS 9中加载HTTPS URL?

来自分类Dev

iOS Swift:无法检索UIwebView中加载的当前URL

来自分类Dev

如何从Firebase数据列表中加载AutoCompleteTextView?

来自分类Dev

如何更改WebView中的URL加载?

来自分类Dev

在Android的WebView中加载URL的问题

来自分类Dev

根据警报中的segue在webview中加载不同的URL

来自分类Dev

如何在webview android中加载youtube的URL?

来自分类Dev

加载图像之前如何在webview中实现进度对话框?

来自分类Dev

如何在WebView中加载html类型的url?

来自分类Dev

刷新之前无法在webview中加载javascript

来自分类Dev

在WebView Android中加载URL时如何显示进度栏

来自分类Dev

如何在Ionic Framweork中加载URL

来自分类Dev

无法在片段中的WebView中加载URL

来自分类Dev

在WebView上加载URL之前无法加载图像

来自分类Dev

Firebase 在承诺触发之前等待加载数据库数据

来自分类Dev

Swift:如何在实例化 viewController 之前加载 Firebase 数据?

来自分类Dev

如何保存 URL 并在 webview (android studio) 中加载此 URL

来自分类Dev

如何在recyclerview中加载webview?

来自分类Dev

如何在 Swift 的 UITableViewCell 中加载字典数据?

来自分类Dev

在加载视图 iOS 之前从 Firebase 检索数据

来自分类Dev

如何在 Firebase 实时数据库中加载/检索多对多关系

来自分类Dev

尝试从 firebase 数据库( swift )中检索类别列表

来自分类Dev

如何在 React Native WebView 中加载视图之前在 WebView 本地存储中设置一个值

Related 相关文章

  1. 1

    如何在Swift中加载GIF图像?

  2. 2

    在通知栏NSPopover中加载WebView URL

  3. 3

    如何更改WebView中的URL加载?

  4. 4

    加载图像之前如何在webview中实现进度对话框?

  5. 5

    如何在Swift中的UIWebView中加载本地PDF

  6. 6

    如何在WebView中加载活动的HTML

  7. 7

    如何在iOS 9中加载HTTPS URL?

  8. 8

    iOS Swift:无法检索UIwebView中加载的当前URL

  9. 9

    如何从Firebase数据列表中加载AutoCompleteTextView?

  10. 10

    如何更改WebView中的URL加载?

  11. 11

    在Android的WebView中加载URL的问题

  12. 12

    根据警报中的segue在webview中加载不同的URL

  13. 13

    如何在webview android中加载youtube的URL?

  14. 14

    加载图像之前如何在webview中实现进度对话框?

  15. 15

    如何在WebView中加载html类型的url?

  16. 16

    刷新之前无法在webview中加载javascript

  17. 17

    在WebView Android中加载URL时如何显示进度栏

  18. 18

    如何在Ionic Framweork中加载URL

  19. 19

    无法在片段中的WebView中加载URL

  20. 20

    在WebView上加载URL之前无法加载图像

  21. 21

    Firebase 在承诺触发之前等待加载数据库数据

  22. 22

    Swift:如何在实例化 viewController 之前加载 Firebase 数据?

  23. 23

    如何保存 URL 并在 webview (android studio) 中加载此 URL

  24. 24

    如何在recyclerview中加载webview?

  25. 25

    如何在 Swift 的 UITableViewCell 中加载字典数据?

  26. 26

    在加载视图 iOS 之前从 Firebase 检索数据

  27. 27

    如何在 Firebase 实时数据库中加载/检索多对多关系

  28. 28

    尝试从 firebase 数据库( swift )中检索类别列表

  29. 29

    如何在 React Native WebView 中加载视图之前在 WebView 本地存储中设置一个值

热门标签

归档