I built a web application that is designed to be run from my application bundle by using webView.loadFileURL(htmlFile, allowingReadAccessTo: projectFolder)
on a WKWebView
.
Inside of the site's folder is a directory of svg
images (from the ionicons project). At runtime the code tries to load one of those images using:
req = fetch(url).then((rsp) => {
if (rsp.ok) {
return rsp.text().then((svgContent) => {
if (svgContent && sanitize !== false) {
svgContent = validateContent(svgContent);
}
(code from the ionicons project).
The rsp.ok
check simply examines the response to the fetch request to see if the status code is in the range 200-299. For the "file://" URL, however Safari on both MacOS and iOS returns 0
in the status.
In spite of that 0, however the request has succeeded and the browser has the content of the file. If I modify the code to ignore rsp.ok
the following call accessing rsp.text()
succeeds.
I'm not sure what the expectations are for a file:// URL passed through fetch
. Is the 0 status code a bug in Webkit or Safari, or is it an expected result for a file:// URL and the code making the fetch
request needs work?