gpt4 book ai didi

local-storage - iOS WKWebView 不支持本地存储

转载 作者:行者123 更新时间:2023-12-02 08:09:16 53 4
gpt4 key购买 nike

我正在构建一个简单的 WKWebView 应用程序,该应用程序加载一个用 Construct (HTML5) 编写的游戏。

游戏存储在服务器上,当我在常规浏览器(移动和桌面)中玩游戏时,游戏本身会存储在本地,高分也会存储在本地。重新启动后游戏不需要重新下载就可以看到之前的高分了。

我不知道 Construct 究竟使用什么来存储本地数据,但是当我在 WKWebView 中运行完全相同的游戏时,游戏不会在本地存储,高分也不会。

我的 Swift 代码是这样的:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate, {
var webView: WKWebView!

override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()

let htmlPath = Bundle.main.path(forResource: "game", ofType:"html")
let url = URL(fileURLWithPath: htmlPath!)
let request = URLRequest(url: url)
webView.load(request)
}
}

我的 WKWebView 显然缺少一些允许它存储离线数据的功能或设置。

最佳答案

你需要添加这个

webConfiguration.websiteDataStore = WKWebsiteDataStore.default()

Apple 文档没有明确说明,但我认为默认的 WKWebsiteDataStore 是持久的。

Read here about WKWebsiteDataStore/ Local Storage

此外,您还可以查看 whether the data store is persistent或不。

关于local-storage - iOS WKWebView 不支持本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48622032/

53 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com