如何在 WKWebview iOS Swift 中持久化 Cookies - iOS 13 SwiftUI。

3

我正在寻找解决方案,用于基于 SwiftUI 构建的使用 iOS 13 SDK WKWebview 的应用程序,以便在不同的应用程序使用会话之间保存 cookie。

这个问题已经在 stackoverflow 上得到了多次讨论,并提供了不同的解决方案,包括使用 ObjectiveCSwift 以及 Storyboards

我想问问社区是否有现成的代码示例,可以在使用 SwiftUIiOS 13 WKWebView 应用程序中提供 WKWebView Cookie 持久性。

为了明确起见:我的应用程序访问远程 Web 服务器,该 Web 站点被设计为类似于移动应用程序。它不是需要在本地操作 cookie 的本地 Web 应用程序。只需在远程服务器上的网页的 Jquery JS 代码中进行 cookie 操作,以便能够跨不同的应用程序会话工作并保存。

我的当前代码版本:

import SwiftUI
import WebKit

struct ContentView: View {
  var body: some View {
    WebView().edgesIgnoringSafeArea(.all)
  }
}

struct WebView: UIViewRepresentable {
  func makeUIView(context: Context) -> WKWebView {
    let webView = WKWebView()
    webView.scrollView.isScrollEnabled = false
    return webView
  }

  func updateUIView(_ webView: WKWebView, context: Context) {
    let liveView = "https://example.com/projectname/index.html"
    if let url = URL(string: liveView) {
       let request = URLRequest(url: url)
       webView.load(request)
    }
  }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
  static var previews: some View {
    ContentView()
  }
}
#endif

这个问题解决了吗?那是解决方案吗?我想启用所有iOS版本的Cookie存储策略,从10开始。 - Pooja M. Bohora
@PoojaM.Bohora 我的解决方案是回到Storyboard而不是SwiftUI,并在持久化cookie的问题上找到了一个适合我的答案。如果这对您仍然有用,可以参考以下链接:https://dev59.com/wVkS5IYBdhLWcg3we26Z#53512299 这个解决方案对我有效。 - user3650307
1个回答

1

设置配置webView.configuration.websiteDataStore.httpCookieStore

请参考此答案以获取示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接