オフラインで最初に作成されたウェブアプリを構築しています。私はredux-offline libを使って自分の状態をIndexedDBに保存しています。このアプリはデスクトップ上ですばらしく動作します。ウェブから切断してアプリを更新すると、すべてのデータがIndexedDBから再調整されます。しかし、私はAndroid(またはiPhone)で同じことをしようとするとき。飛行機モードに入ってアプリを更新しようとすると、「あなたはオフラインです」というメッセージが表示されます。 dinasaurエラー(Chrome版)ここでオフラインファーストアプリ(Chrome - Android、Safari iOS)の接続チェックを無効にする方法
は、私は今、それが関連している私のマニフェストファイルに持っているものです。
{
"short_name": "...",
"name": "...",
"manifest_version": 2,
"offline_enabled": true,
"start_url": "/events",
"theme_color": "#000000",
"background_color": "...",
"display": "standalone",
"default_locale": "en",
"description": "...",
"permissions": [
"unlimitedStorage"
],
"icons": [{...}]
}
は、ここに私のsw.jsです:
var CACHE_NAME = 'my-cache-v1';
var urlsToCache = [
'/',
'/index.html',
'/dist/bundle.css',
'/dist/bundle.js',
'/assets/font-awesome/fonts/fontawesome-webfont.woff2',
'/assets/fonts/...',
'/assets/images/...',
'/assets/images/favicon.ico',
'/assets/tinymce/tinymce.min.js',
'/assets/activity_notification.mp3',
];
self.addEventListener('install', function(event) {
// Perform install steps
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
console.log('ServiceWorker: Opened cache');
return cache.addAll(urlsToCache);
})
);
});
は、ここでのindex.htmlでの私の輸入です:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js')
.then(function(registration) { console.log('ServiceWorker registration successful with scope: ', registration.scope); })
.catch(function(err) { console.log('ServiceWorker registration failed: ', err); });
}
私のJavaScriptバンドルを含むすべての静的リソースは、サービスワーカーを使用してキャッシュされます。私はバンドルからのコンソール出力を見るので、うまくいきます。
すべてのデータがIndexedDBにあることがわかります。私はオフラインのディーノを見ているときに、それは開発者のコンソールに表示されません。 Androidは、オフラインであれば何もしないようにしているようです。
GET ...url... net::ERR_INTERNET_DISCONNECTED ...url...
Navigated to data:text/html,chromewebdata
このチェックを無効にする方法はありますか?それについて正しい方法は何ですか?
* "私のJavaScriptバンドルを含むすべての静的リソースは、サービスワーカーを使用してキャッシュされます。あなたのHTMLファイルが含まれていますか?あなたのサービスワーカーがナビゲーション要求を処理していますか?Android上でオフラインのdinoが表示されている場合、以前にキャッシュされたHTMLを使ってナビゲーション要求に応答するSWはありません。あなたのサービスワーカーの設定? –
@ JeffPosnickあなたは正しいです、私はSWでindex.htmlを忘れて、それを試してみて、ありがとう! –
@ JeffPosnick index.html(私のプロジェクトで唯一の静的なHTMLファイルを追加)SWは問題を解決しませんでしたSW設定で質問を更新しました –