【问题标题】:Xcode Webview items not loadingXcode Webview 项目未加载
【发布时间】:2020-01-02 00:29:08
【问题描述】:

我有一个带有 WebviewTabBar 的 Xcode 项目,并且使用 TabBar 我可以在 WebView 之间切换。我的问题是,当我在我的 ShoppingCard 中 Lieferworld.de 下放一些东西并使用 TabBar 切换到我的购物卡 url 时,那里的项目不可见。我该如何解决这个问题? ShoppingCard URL 以 .php 结尾。下面是实现的代码

我还在 YouTube 上上传了一个视频,你可以看到错误

https://youtu.be/qU3Mu1G7MY0

Viewhome:

import UIKit
import WebKit

class viewHome: UIViewController, WKUIDelegate {



@IBOutlet var webViewHome: WKWebView!


 override func loadView() {
       let webConfiguration = WKWebViewConfiguration()
       webViewHome = WKWebView(frame: .zero, configuration: webConfiguration)
       webViewHome.uiDelegate = self
       webViewHome.configuration.preferences.javaScriptEnabled = true
       //webViewHome.configuration.preferences.javaEnabled = true

       view = webViewHome

}

override func viewDidLoad() {
    super.viewDidLoad()

    let url = URL(string: "https://lieferworld.de")
    let request = URLRequest(url: url!)
    webViewHome.configuration.preferences.javaScriptEnabled = true
    //webViewHome.configuration.preferences.javaEnabled = true
    webViewHome.load(request)
}




@IBAction func GoBackHome(_ sender: Any) {


    if webViewHome.canGoBack {

        webViewHome.goBack()

    }

}



@IBAction func GoForwardHome(_ sender: Any) {

    if webViewHome.canGoForward {

        webViewHome.goForward()

    }

}

}

查看购物 |购物车类:

import UIKit
import WebKit

class viewShopping: UIViewController, WKUIDelegate {




@IBOutlet var webViewShopping: WKWebView!

override func loadView() {
       let webConfiguration = WKWebViewConfiguration()
       webViewShopping = WKWebView(frame: .zero, configuration: webConfiguration)
       webViewShopping.uiDelegate = self
       //webViewShopping.configuration.preferences.javaEnabled = true
       webViewShopping.configuration.preferences.javaScriptEnabled = true

       view = webViewShopping
}

override func viewDidLoad() {
    super.viewDidLoad()

    let url = URL(string: "https://lieferworld.de/warenkorb.php")
    let request = URLRequest(url: url!)
    webViewShopping.configuration.preferences.javaScriptEnabled = true
    //webViewShopping.configuration.preferences.javaEnabled = true

    webViewShopping.load(request)
}

@IBAction func goBackShoppingCart(_ sender: Any) {

    if webViewShopping.canGoBack {

        webViewShopping.goBack()

    }

}


@IBAction func goForwardShoppingCart(_ sender: Any) {

if webViewShopping.canGoForward {

        webViewShopping.goForward()

    }

}


@IBAction func webViewRefresh(_ sender: Any) {

    webViewShopping.reload()
}

}

【问题讨论】:

  • 将 WKNavigationDelegate 添加到您的类定义中并实现委托。
  • 我实现了 WKNavigationDelegate,但是实现 Delegates 是什么意思,你能给我看一个示例代码吗?顺便说一句,非常感谢您的回答

标签: swift xcode webview loading


【解决方案1】:

WKNavigationDelegate 有三个代表。

这是一个例子;

func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
    print(error.localizedDescription)
 }
 func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
    print("Start page load")
 }
 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
 {
    let title = webView.title
    print("finish  load. \(title).")
    // you can do processing on the results here or trigger processing elsewhere 
    webView.evaluateJavaScript("document.documentElement.outerHTML.toString()",completionHandler:
    { (html: Any?, error: Error?) in
                                  print(html as Any)
                                  self.htmlSource = html as! String
                                  NotificationCenter.default.post(name: NSNotification.Name(rawValue: "pageLoaded"), object: nil)

    })
 }

【讨论】:

  • 首先非常感谢您,问题是我是swift的新手,我知道这对您来说是不必要的工作,但可以为我编写代码,以便我的购物车中的东西是可见吗?
  • 您应该专注于管理网页。购物车不是 web 显示功能的一部分,它是后端。首先确保您可以正确显示页面。
猜你喜欢
  • 2011-06-14
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 2019-09-11
  • 1970-01-01
  • 2023-01-30
相关资源
最近更新 更多