UIWebView
デリゲートを設定し、 と を定義webView:didFailLoadWithError:
し– webViewDidFinishLoad:
ます。そこにいくつかのNSLog
トレースを入れる (またはデバッガーでブレークする) と、何が起こっているのか理解できるかもしれません。
原則として、ローカル ファイルを表示できれば、リモート サーバーからの同じ情報を表示できます。したがって、サーバーが正しく応答していない可能性があると考えています(それdidFail:
を理解するのに役立ちます)。
編集:
MIME タイプはサーバーから送信されますが、サーバーが処理する前に変更する方法がわかりませんUIWebView
。
次の方法でファイルを簡単にダウンロードできます。
NSData *urlData = [NSData dataWithContentsOfURL:url];
その後、既に行っているように、データを Web ビューに渡すことができます。
これは同期であることを考慮してdataWithContentsOfURL:
、UI を停止します (ただし、テストでは問題ありません)。すべてがうまくいけば、次のようなバックグラウンド スレッドで実行できます。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *htmlData = [NSData dataWithContentsOfURL:url];
dispatch_async(dispatch_get_main_queue(), ^{
[aWebView loadData:htmlData MIMEType:@"text/text" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
}
}
UIWebView
XML がダウンロードされると、メイン スレッドを介してに戻る方法に注意してください。