swift - Swift 4 WebkitView URL 更改没有发挥作用
问题描述
我有以下情况。
我正在使用 WebkitView 来显示一些会话信息。在大多数地方,它是在 ViewController 生效时生成的,但我有一个特定的视图,我必须在用户交互时重新加载它,按钮更改为下个月或上个月。
我有以下代码:
// This is my connection to the storyboard element
@IBOutlet weak var areaNotasMes: WKWebView!
之后,我有一个执行 URL 处理的函数:
func actualizarUrlNotasMes(fechaNueva: Date) {
let formateadorAdicional = DateFormatter()
formateadorAdicional.dateFormat = "yyyyMM"
let url = URL(string: "https://myurl/\(formateadorAdicional.string(from: fechaNueva))")
areaNotasMes.load(URLRequest(url: url!))
}
我有一个按钮事件,它使用带有下一个 YEAR_MONTH 组合的函数,如下所示:
@IBAction func mesSigPressed(_ sender: UIButton) {
// Some more code to get the fechaActual variable
actualizarUrlNotasMes(fechaNueva: fechaActual)
// Some more code
}
所以,基本上发生的事情是它在我第一次打开 ViewController 时加载,但是当我单击按钮更改为下个月时,日期会更改,正确生成并传递给函数。它生成正确的 URL,但是当areaNotasMes.load(...)
函数运行时,WebKitView 上没有任何刷新。我尝试添加areaNotasMes.reload()
,但它也没有做任何事情。每次更改 URL 时,我是否都必须销毁并重新创建 WebKitView?还是我没有正确处理 URL 更改?
此外,控制台会不时弹出其中一些消息,但并非总是如此:
[BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C5.1:2][0x7fea2d201de0] get output frames failed, state 8196
TIC Read Status [5:0x0]: 1:57
解决方案
不,您不需要在更改 URL 时重新初始化 web 视图。我无法根据您提供的信息说明问题。我建议您将 ViewController 设置为navigationDelegate
webview 并实现这些方法来尝试诊断问题:
func webView(WKWebView, didStartProvisionalNavigation: WKNavigation!)
func webView(WKWebView, didFail: WKNavigation!, withError: Error)
//Called when an error occurs during navigation.
func webView(WKWebView, didFailProvisionalNavigation: WKNavigation!, withError: Error)
文档在这里
推荐阅读
- pip - 使用英特尔 MPI 安装 mpi4py 时遇到问题
- javascript - 从其他数组中找到一个数组的相同元素?
- java - 当参数值为null时如何在@Cacheable中创建多个缓存键
- python - 将多索引列标题附加到现有数据框
- c# - 如何在 C# (.NET Core) 中读取 Brave Browser cookie 数据库加密值?
- asp.net-core - 如何将复杂数据发送到控制器端点
- java - 使用 ActionListener 按钮和 GUI 时如何将项目添加到数组列表?
- python - 如何在每个趋势线点上绘制各自的数据
- flutter - 每次接收新位置时以块模式重新创建地图
- powershell - Set-PnPSite -LogoFilePath 抛出错误?需要哪个版本的 SharePointPnPPowerShellOnline?我的是 3.20.2004.0