2016-07-12 4 views
3

私たちはcordova iosアプリケーションを開発しています。私たちは最近、xcode 8-betaをインストールして、私たちのアプリケーションがios 10の下でどのように動作するかを確認しました。 これまでのところ、 :svgイメージがロードされていません。これらの画像は、さまざまな要素のCSSを使用してバックグラウンドとして設定され、9.3.2以下ですべて正常に動作します。iOS 10のUIWebViewベータ版:何もSVG画像をロードしていない

+0

同じ問題...インラインBase 64でエンコードされたsvgイメージが正常に動作しているようです。私は、svgイメージがシミュレータ上でうまくロードされていることに気付きましたが、iOS 10を実行している物理的なiPhoneにロードできませんでした。 – njtman

答えて

1

コードバスアプリでphonegap contentsync pluginなどのURLProtocolなどのプラグインを使用している場合は、SVGのレスポンスヘッダーのMIMEタイプにバグがある可能性があります。

iOS 10より前のバージョンでは、MIMEタイプが自動的に設定されていた可能性があります(まだ確認していない)が、もはやそうではないようです。あなたは明示的に[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]; 
} 
+0

このフィックスは、最近[merged]でした(https://github.com/phonegap/phonegap-plugin-contentsync/commit/efaf50a86e51168f7114a782910d40bf939fe89b)をphonegapに追加します。 –

0

場合には、他のこのヘルプ誰もがに見ていません

<img src="img/logo.svg" alt="Logo" width="280" class="logo">

012:URLProtocolコードを変更し、私はちょうど objectタグと私の imgタグを置き換えます

<object type="image/svg+xml" data="img/logo.svg" width="280" class="logo">Logo</object>

これはすべてのケースでうまくいかないかもしれないが、それは私のためのトリックでした。

関連する問題