[英]WKWebView:Load contents from documents folder in iOS
在我的应用程序中,我将index.html作为资源包的一部分,它充当模板。 它有通往不同资源的道路。 我将其加载到WKWebview中,当该应用程序在线时,一切正常,从Web加载所有资源,页面完美。
在离线情况下,我会将这些资源下载到应用程序中的documents文件夹中,并将在线路径替换为Index.html中的离线路径,例如
<image src = "file:///Users/an/Library/Developer/..../Library/Caches/MYApp/Icon.png">
<a href="file:///Users/an/Library/Developer/..../Library/Caches/MYApp/Data.html">
但是Index.html无法加载它。 我尝试使用wkWebView.load(URLRequest(url: URL(string: "file:///Users/an/Library/Developer/..../Library/Caches/MYApp/Data.html")!))
,它可以工作,但是当我尝试通过Index.html加载它时,它就停止工作了。
大多数人都说要拥有像GCDWebServer这样的Web服务器,这是唯一的方法吗? 如果我使用它,这个问题会解决吗?
您是否正在要求操作系统提供下载文件的位置? 目标目录可能会更改,而不会通知您,如果您使用硬编码位置,则目录结构更改后将不会成功。 您应该获得一个指向用户的可写缓存文件夹的URL,如下所示:
let userCachesDirectoryURL = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0]
一旦有了它,就可以将文件名(而不是整个路径)附加到该URL。 我只是在其中一个程序中打印出该行的结果,并看到我的应用程序正在使用几个文件夹。
试试看,如果您仍然遇到问题,请告诉我。 我可以编写示例代码...(有空时)。
我的要求是在运行时使用Java脚本从文档或缓存文件夹加载/更改Index.html中的资源。 ( 我根本不对路径进行硬编码,而我当然使用文件管理器 )。 这样做时,我无法使用file://
协议访问资源。 今天,我尝试了一个示例应用程序来演示我的问题,然后突然开始工作:)。 现在,我需要访问我的主要项目,看看出了什么问题。
在此示例项目中,我试图通过传递来自caches文件夹的路径来在运行时更改图像的src。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.