我写了一个基于Web的应用程序,希望在iPhone的Web视图中显示。我的计划是通过承诺加载此网站资产:
我编写了这段代码,以加载稍后在画布上绘制所需的一些图像:
constructor() {
this.assets = {
"assets/y/y/background.png" : 0,
"assets/y/spritesheet.png" : 0,
"assets/x/spritesheet.png" : 0,
"assets/x/background.png" : 0,
"assets/x/background.png" : 0,
"assets/z/spritesheet.png" : 0,
"assets/z/background.png" : 0,
"assets/z/a/spritesheet.png" : 0,
"assets/p/a/spritesheet.png" : 0,
"assets/p/a/spritesheet.png" : 0,
}
this.init()
}
async init() {
await this.loadAssets()
$("#information").html("successfully started")
}
async loadAssets() {
for (let asset in this.assets) {
let image = new Image()
image.src = "https://myWebserver.info/" + asset
$("#information").html("loading asset<br>" + asset)
await new Promise(resolve => {
image.onload = () => {
resolve(image);
}
image.onerror = (e) => {
$("#information").html("error asset<br>" + image.src)
}
});
this.assets[asset] = image
}
}
上面的 js代码在Mac上运行时效果很好-但是我在Swift中使用WKWebView遇到了很大的问题。启动该应用程序将导致大约每隔第二次出现我加载图像的错误。
我的第一个想法是,它可能只是一张损坏的图片,但事实并非如此:犯错的图片每次都是不同的-似乎是偶然的。
有人知道如何解决此问题,并在出现错误的情况下仍重新加载有问题的图像吗?
我真的很无助。