3

問題:アップルのipadおよびiphone内のブラウザーは、動的に生成されたマニフェストファイルを好まないようです(デバイスからアクセスできる画像または.aspxページの欠落、または「アプリケーションキャッシュマニフェストをフェッチできませんでした」に関するエラーが常に発生します) 。元々、マニフェストとして機能するmanifest.ashxがあり、オフラインアプリ機能のためにWebサーバーからいくつかの部分を動的に作成およびプルしていました。このプロセスは、ほとんどのブラウザとモバイルデバイスで正常に機能しましたが、アップル製品では失敗しました。

考え:何らかの理由で、safariはmanifest.ashxを正しく登録していないようで(ここでマニフェストファイルを動的に作成します)、それを開こうとするのをあきらめます。プロジェクトの要件に対応する動的マニフェストファイルが本当に必要なので、静的マニフェストファイルへの切り替えは機能しません。動的マニフェストファイルの代替作成方法について何か提案はありますか?

コード: manifest.ashx

public class Manifest : IHttpHandler
{

 public void ProcessRequest( HttpContext context )
 {
   ManifestGenerator generator = new ManifestGenerator();

   context.Response.ContentType = "text/cache-manifest";
   //Create the dynamic manifest file here (returns the manifest as a string)
   context.Response.Write( generator.GenerateManifest() );
   context.Response.Flush();
 }
}

ありがとう、

更新された考えv1:他のすべてのモバイルデバイスとデスクトップデバイスがアプリに正常にアクセスしているため(オフラインにできることを含む)、これはデバイス固有のマニフェスト障害である可能性があると考える傾向があります。現在、動的に生成されたマニフェスト(manifest.ashx内)に戻りましたが、フェッチしようとするとipad / iphoneはまだ停止しますが、以前よりもさらに進んでいます(エラー:「アプリケーションキャッシュの更新に失敗しました。パスはここにあります"フェッチできませんでした")。これとは別に、デスクトップバージョンのサファリはウェブアプリをうまく処理しますが(iPadにChromeをインストールしてもオンライン/オフラインでサイトにアクセスするのに問題はありませんでした)、モバイルバージョンはそうではありません。

更新されたThoughtsv2:アップル製品(iphone / ipad)用のクロムを使用してオンライン/オフラインでWebアプリを実行しているため、この問題はサファリ固有のようです。まだサファリブラウザの修正/回避策を探していますが...

4

1 に答える 1

0

Safari / iPadの場合、マニフェストファイルは.manifestで終わる必要があります。少なくとも、それが私のテストで決定されたものです。

したがって、これを機能させるには、HttpHandlerを使用して.manifestファイルを動的に生成し、web.configを変更してcache.maifestをハンドラーにマップする必要があります。存在しないcache.manifestの呼び出しは実際にはハンドラーにマップされ、ハンドラーは動的コンテンツを送り返すという考え方です。

これは現在私が立ち往生している部分なので、私はまだここであなたを助けることができません。

于 2013-07-10T18:54:34.960 に答える