0

我創建了一個擴展(請參閱下面的代碼),並通過「加載未打包的擴展名」將其添加到谷歌瀏覽器中。然後我打開它並在關閉Web服務器之前使用它(它是一個內部服務器)。當我點擊使用應用程序時,它只是在「請求」時掛起。我如何強制它在離線和本地使用應用程序?這個擴展爲什麼不能離線工作? (包括代碼)

我甚至從計算機(沒有wifi)以及所有灰色的其他擴展拔掉以太網但是我的留在色彩,但是當我點擊它,它扔了錯誤:

The app is currently unreachable.

爲什麼?

manifest.js

{ 
    "name": "Test App", 
    "description": "Something", 
    "version": "0.0.0.3", 
    "manifest_version": 2, 
    "app": { 
     "urls": [ 
      "*://192.168.1.100/chrome/app/" 
     ], 
     "launch": { 
      "web_url": "http://192.168.1.100/chrome/app/" 
     } 
    }, 
    "icons": { 
     "128": "icon.png" 
    }, 
    "offline_enabled": true, 
    "permissions": [ 
     "unlimitedStorage", 
     "notifications" 
    ] 
} 

的index.html

<!DOCTYPE html> 
<html> 
    <head></head> 
    <body> 
     loaded 
    </body> 
</html> 

回答

0

的問題是,有兩種不同類型的清單文件,你需要兩個(谷歌文檔從來沒有提到這個!)。

第一個清單是Chrome應用程序manifest.json。我在上面的代碼中有這個。儘管此清單文件旨在告知Chrome應用程序所在的文件/網址,並且應緩存(用於脫機可用),但不是。這由駐留在託管服務器上的「.manifest」文件處理,並且必須是「文本/清單」類型的文件。下面是得到這個工作到你的Chrome應用程序脫機工作做出步驟:

添加MIME類型「text /清單」到你的服務器

(在Apache中,您可以添加以下的httpd。 CONF或的.htaccess):

AddType text/cache-manifest .manifest 

它不需要被命名爲 「.manifest的」,但它更容易添加的MIME類型這樣

將清單鏈接到您的index.html指向清單,而不是在manifest.json:

<!DOCTYPE html> 
<html manifest="mymanifest.manifest"> 

創建清單文件

CACHE MANIFEST 

# These are the files that will be cached and available offline 
# Their paths are relative to the manifest file 
# These files will all load from AppCache and NOT from the server, BUT 
# if you want to update them, simply change the manifest file and the browser 
# will redownload them 
CACHE: 
index.html 
icon.png 

# This would be files that are not cached but live only online 
NETWORK: 

# Files that are used if any other files cannot be loaded 
# example: 
#  someimage.png fallbackimage.png 
FALLBACK: 

就是這樣。一旦用戶在線訪問了該應用,Chrome就會正確緩存所有內容,並且可以離線使用。

相關問題