2013-10-31 31 views
0

我有一個PhoneGap移動網絡應用程序,它在iOS,Android和BlackBerry上使用存儲(SQLite)。相同的代碼適用於所有平臺。不過,我還想使用相同的網絡應用創建Chrome應用。我需要將代碼的存儲部分分開,因爲Chrome的存儲API是完全不同的。如何設計一個Web應用程序以允許多個存儲提供程序?

我的想法是創建一個存儲API接口,Web應用程序將使用該接口訪問PhoneGap存儲和Chrome存儲。

是他們已知的模式,可以使用或javscript API已經這樣做?我的設計思想是否正確或有更好的方法?

謝謝你的時間!

回答

1

您可以使用chrome.storage.local API的Chrome Cordova插件,該插件可用於IOS和Android中的Cordova應用程序以及桌面上的Chrome應用程序。您可以在這裏找到更多的信息:https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/APIStatus.md https://github.com/MobileChromeApps/mobile-chrome-apps

+0

正在檢查移動Chrome應用程序,它看起來需要Chrome Packaged應用程序到Cordova。我想走另一條路。 Cordova Chrome瀏覽器打包應用程序。這是否存在? – hooinator

+0

基本上我希望能夠發出'cordova平臺添加鉻',然後'cordova生成鉻'。 – hooinator

1

斯利拉姆已經談到了不同的做法,可能會取消你爲一個抽象的接口,這是你應該首先考慮什麼需要。我會回答你的直接問題。

你的設計思想聽起來很合理和有效。這在Javascript中非常容易和簡單 - 比其他語言更容易 - 但對我來說總是感覺不安全。

Javascript沒有靜態類型。這意味着您可以使用抽象接口,但不需要在任何地方聲明/定義它。只要具體實現實現了所有正確的功能,就沒有問題。

作爲一個具體的例子,你可以這樣做:

主要文件:

var gStorage = null 
initStorage(); 
gStorage.load(); 
.... 
gStorage.save(); 

應用程序存儲實現:

var gAppStorage = {}; 

gAppStorage.load = function() { 
    ... 
} 

gAppStorage.save = function() { 
    ... 
} 

function initStorage() { 
    gStorage = gAppStorage; 
} 

而對於你想要的任何其他存儲供應商類似。然後,您只會在您的應用中包含您想要使用的提供商的js,並且它應該可以正常工作。

Javascript是非常靈活的,並有無數的如何做到這一點排列。這只是你可以走的一條途徑。

相關問題