0

我已經編寫了一個簡單的僅前端web應用程序,它在瀏覽器中正常工作,並且希望在Chrome網上應用店中可用。雖然這是一個巨大的痛苦,我擔心有些事我沒有得到。Chrome應用程序和跳過滾動條

我首先添加一個manifest.json文件到項目中。它與Firefox的manifest.webapp文件略有不同,但不管怎樣,都沒有直接的衝突,所以我只需添加一些額外的參數並將剩餘的參數複製。

它看起來像我需要一個後臺腳本來啓動我的應用程序,否則它將被視爲一個擴展名,而不是一個在其自己的窗口中打開的應用程序。複雜的,但我想它讓我更多地控制我的應用程序啓動,所以它是有道理的。所以我喜歡這個東西添加到這個清單:

{ 
    "background": { 
    "scripts": ["main.js"] 
    } 
} 

然後在main.js我有這樣的事情:

chrome.app.runtime.onLaunched.addListener(function() { 
    var screenWidth = screen.availWidth; 
    var screenHeight = screen.availHeight; 
    var width = 500; 
    var height = 300; 

    chrome.app.window.create('index.html', { 
    id: "myapp", 
    outerBounds: { 
     width: width, 
     height: height, 
     left: Math.round((screenWidth-width)/2), 
     top: Math.round((screenHeight-height)/2) 
    } 
    }); 
}); 

現在我的應用程序正在啓動OK,但我得到一個錯誤在控制檯中:window.localStorage is not available in packaged apps. Use chrome.storage.local instead.。奇怪的是,我不能只使用W3 spec localStorage標準。查找chrom.storage.local,它甚至不使用標準的localStorage語法。 getItem改爲get,導致在localStorage周圍使用輕包裝器時無法修改現有代碼。

所以我的問題:這是什麼誠實的谷歌開發者預計要經過,如果他們想在Chrome網上應用店的應用,還是我可怕的誤解的東西嗎?

+0

您已經注意到一些API被禁用:https://developer.chrome.com/apps/app_deprecated。您是否已嘗試使用[''標籤](https://developer.chrome.com/apps/tags/webview)? – 2014-10-26 19:50:14

+0

感謝您的評論(以及下面的答案)。根據我的情況,我認爲託管應用程序將成爲我的最佳發展道路。瞭解生態系統是我最大的問題,也許我會寫一篇博客文章,解釋當我完成幫助其他人與我一樣困惑的事情。 – 2014-10-27 06:59:24

回答

4

考慮一下「Chrome應用程序」是什麼。

您試圖構建的是之前稱爲「打包的應用程序」,a self-contained, nearly native application。因此,預計開發人員會遵循一些稍有不同的規則。正如RobW所說,你可以用<webview>標籤嵌入到你的網絡應用程序中,但這可能不是你想要做的。

如果你想要一個web應用程序出現在店裏,而這個程序已經託管的地方,你不想要一個UI從普通的瀏覽器分開,你看錯誤的應用程序類型。

A .webapp-定義的應用對應於Chrome術語中的Hosted Apps。它只是一個連接到現有網絡應用的元數據文件,您可以在商店中列出。

1

Chrome應用是一個應用平臺,如Windows,OS X,Android的,Linux等。這樣,他們有獨特的要求和約束。

這是誠實是谷歌開發者預計要經過,如果他們想 獲得對Chrome網上應用店的應用,還是我可怕 誤解的東西?

看來你問的是如何輕鬆獲得在Chrome網上應用店中列出的東西。從這個角度來看,你的挫敗感是可以理解的:爲了獲得超便宜的發行版,你期望開發者的努力是超低的。但那是使用你的術語的「可怕的誤解」。便宜的分配可能是你的目標,但它不是谷歌的。 Chrome應用平臺是一個獨特的應用平臺,專門用於確保應用在Chromebook和其他Chrome操作系統設備上表現良好。順便提一句,是的,生態系統的一部分是一個幫助分銷的商店。但這只是平臺開發的一小部分。請參考https://developer.chrome.com/apps/about_apps並試用一些示例應用程序。你會發現Web開發的好處仍然存在,但是壞的部分(像localStorage這樣的同步API,面向頁面的生命期模型,危險的內聯腳本)被刪除,而全新的部分(新的硬件和UI API,優秀的離線行爲,更好的分佈和更強大的安全模型)。

Chrome應用程序平臺非常精簡,它適用於類似的精簡版Chrome操作系統。花一兩天時間沉浸其中。這很值得。編寫一款適用於Chromebook的高質量,精美的應用程序,您尋求的發行版本自然會遵循。