gpt4 book ai didi

cordova - iOS 10 测试版上的 UIWebView : not loading any svg images

转载 作者:行者123 更新时间:2023-12-02 10:09:11 24 4
gpt4 key购买 nike

我们正在开发一个 cordova ios 应用程序,最近安装了 xcode 8-beta 来看看我们的应用程序如何在 ios 10 下运行。到目前为止,我们只注意到一个问题:svg 图像未加载。这些图像使用 css 为各种元素设置为背景,并且它们在 9.3.2 及以下版本下都可以正常工作。

最佳答案

如果您的 cordova 应用程序使用实现 URLProtocol 的插件,例如phonegap contentsync plugin ,您可能会发现 SVG 响应 header 的 MIME 类型存在错误。

在 iOS 10 之前,MIME 类型是自动设置的,可能是作为 API 的一项功能(尚未确认),但情况似乎不再如此。您可以通过在 [URLProtocol startloading] 期间显式设置响应的 MIME 类型 (Content-Type) 来解决该问题。 :

(改编自 phonegap contentsync 和这个 MIME Check )

- (void)startLoading {
NSData *data = [NSData dataWithContentsOfFile:self.request.URL.path];

NSString *fileExtension = self.request.URL.pathExtension;
NSString *UTI = (__bridge_transfer NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)fileExtension, NULL);
NSString *contentType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass((__bridge CFStringRef)UTI, kUTTagClassMIMEType);

// add the MIME Type to the existing header.
NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithDictionary:self.request.allHTTPHeaderFields];
headers[@"Content-Type"] = contentType;

// create a response using the request and our new HEADERs
NSHTTPURLResponse *response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL
statusCode:200
HTTPVersion:@"1.1"
headerFields:headers];

[self.client URLProtocol:self didReceiveResponse:response
cacheStoragePolicy:NSURLCacheStorageAllowedInMemoryOnly];
[self.client URLProtocol:self didLoadData:data];
[self.client URLProtocolDidFinishLoading:self];
}

关于cordova - iOS 10 测试版上的 UIWebView : not loading any svg images,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318411/

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