方法一:
一种通过 Base64 的编码来解决 H5Image 标签显示图片的问题,当然了这里我就不介绍了
方法二:
在 Podfile
写入(关于 GCDWebServer,一个轻量级的 AppServer 框架。)
pod "GCDWebServer", "~> 3.0"
import GCDWebServer
/// 启动Server 参数自己定,但是directoryPath和forBasePath要定义好,我们写的是沙盒路径。
func initWebServer() {
let webServer = GCDWebServer()
webServer.addGETHandler(forBasePath: "/", directoryPath: NSHomeDirectory(), indexFilename: nil, cacheAge: 3600, allowRangeRequests: true)
webServer.start(withPort: 9999, bonjourName: "GCD Web Server")
print("Visit \(webServer.serverURL) in your web browser")
}
如果资源访问的是沙盒中的资源,如:
模拟器目录
<body isAutoLoadImage ='1' background = '/Users/HJiang/Library/Developer/CoreSimulator/Devices/BFE72029-56CE-4768-8312-05CA50250212/data/Containers/Data/Application/6CD99493-3C89-40F0-A7C4-353DBA7893F3/Documents/waterfile/6005001463_2025.jpg'>
真机路径
<body isAutoLoadImage ='1' background = '/var/xxxx/Library//Devices/BFE72029-56CE-4768-8312-05CA50250212/data/Containers/Data/Application/6CD99493-3C89-40F0-A7C4-353DBA7893F3/Documents/waterfile/6005001463_2025.jpg'>
使用的是沙盒中绝对路径,经测试此方式在模拟器上资源可以正常访问,真机无法访问资源
因webkit框架访问沙盒资源存在bug,无法加载通过绝对路径访问到资源.
// 比方说文件存在Library下有一个123的文件
NSString *basePath = @"http://localhost:9999/Library/water"; // 这样就可以访问到这个文件了,我只需要把我的文件名拼上localhost路径然后传给前端,他们拿到这个链接直接访问就可以拿到这个文件了
网友评论