【发布时间】:2021-07-30 00:56:55
【问题描述】:
当前在我的 WKWebView 应用程序中,如果我按下主页按钮然后返回应用程序,它会重新启动我的应用程序。我在 updateUiView 中放了一条打印语句,它似乎一旦进入后台就会刷新它。我认为这是因为所谓的后台应用刷新。但在“后台模式”中,后台获取未勾选。所以,我想我的问题是,当应用切换到后台时,如何阻止应用刷新?
其他应用没有相同的行为,所以它一定是可能的。
仅供参考:我正在使用 SwiftUi 应用程序生命周期。
编辑:
这是我的updateUiView:
func updateUIView(_ uiView: WKWebView, context: Context) {
if (uiView.canGoBack) {
uiView.goBack()
}
uiView.navigationDelegate = context.coordinator
....
guard let urlStr = URL("https://www.example.com") else {
return
}
uiView.load(URLRequest(url: urlStr))
}
【问题讨论】:
-
你在
updateUiView做什么?如果您正在重新加载页面,您可以将重新加载移动到makeUIView吗? -
这与后台获取无关 - 这是您需要编写代码才能使用的特定后台服务。
-
@user1046037 在 updateUiView 中,我主要只是像这样加载网址:
uiView.load(URLRequest(url: urlStr)) -
不确定,最好注释掉除绝对必要的行之外的所有行。记录打印语句以查看是否再次调用
makeUIView。如果是这样,视图将被重新创建,那么问题可能在于它为什么被重新创建 -
另外,如果您将评论作为答案发表,我会很乐意接受:)