2015-11-25 11 views
6

मेरे पास क्रोम कियोस्क ऐप है जिसे मुझे मशीन चालू करने और बंद करने के बीच डेटा (स्ट्रिंग के रूप में कुछ बाइट्स) को सहेजने की आवश्यकता है। लेकिन जो भी मैं कोशिश करता हूं, स्थानीय स्टोरेज को पुनरारंभ करने के लिए मिटा दिया जाता है।क्रोम ऐप लोकल स्टोरेज जारी नहीं है और chrome.storage काम नहीं कर रहा है

मैं क्रोम पर जाते हैं: // निरीक्षण/# ऐप्स को Chrome एप्लिकेशन का निरीक्षण करने के लिए, वहाँ एक ब्राउज़र में LocalStorage

क्रोम के भीतर करने के लिए के बारे में कंसोल में कोई संबंधित त्रुटियों, मैं बस localStorage का प्रयोग करेंगे रहे हैं, लेकिन इस एक कियोस्क ऐप में तब तक नहीं टिकता है। कोड की

उदाहरण:

window.localStorage.setItem(id, temp); 
window.localStorage.getItem(id); 
सलाह यहाँ के बाद

: Persist data across single app kiosk mode executions मैं निम्नलिखित सेटिंग्स निर्धारित के साथ एक Chrome प्रबंधन लाइसेंस है, लेकिन यह कोई फर्क (संलग्न जेपीजी देखें) बना दिया है प्रतीत नहीं होता है

कियोस्क ऐप के साथ

, मैं manifest.json

मैं chrome.storage में जाने की कोशिश की है में भंडारण की अनुमति है, लेकिन मैं एक अपरिभाषित त्रुटि जब ई मिलता है मैं कोशिश करता हूं और करता हूं। यह त्रुटि तब होती है जब क्रोम ऐप के रूप में चल रहा है और ब्राउज़र में

मैंने यहां समाधानों का प्रयास किया है लेकिन वे काम नहीं करते हैं। हमेशा एक अपरिभाषित त्रुटि मिलती है: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-apps/_YcOT4PcdAQ

Chrome Management Settings

टिप्पणियों से

जोड़ा गया: कोड:

chrome.storage.local.set({ 'key1': 'first', 'key2': 'second', 'key3': 'third', 'key4': 'fourth', 'key5': 'fifth' }, function() { console.debug('Settings saved'); }); 

<body class="trim full"> 
    <form id="kiosk" model="AppConfig" view="KioskView"> 
    <webview id="browser" src="link-to-my-website-which-calls-localstorage.com" style="width:100%; height:100%; position:absolute; top:0; left:0; right:0; bottom:0;"></webview> 
    </form> 
</body> 
+1

कोड को पोस्ट करें जिसे आपने 'chrome.storage' और सटीक त्रुटि टेक्स्ट के लिए उपयोग किया है। – wOxxOm

+0

@wOxxOm chrome.storage.local।सेट ({ \t 'कुंजी 1': 'पहली', \t 'कुंजी 2': 'दूसरा', \t 'key3': 'तीसरे', \t 'key4': 'चौथे', \t 'key5': ' पांचवां ' }, फ़ंक्शन() { \t \t console.debug (' सेटिंग्स सहेजा गया '); \t }); त्रुटि: लेखन त्रुटि: मुद्दा हो सकता है कि कोड वेब दृश्य के माध्यम से Chrome एप्लिकेशन से कहा जाता है गुण अपरिभाषित – James

+0

के 'स्थानीय' नहीं पढ़ सकते? कोड: <शरीर वर्ग = "ट्रिम पूर्ण"> <फोम आईडी = "किओस्क" मॉडल = "AppConfig" दृश्य = "KioskView"> <वेबव्यू आईडी = "ब्राउज़र" src = "http: // लिंक -to-my-website-which-calls-localstorage.com "शैली =" चौड़ाई: 100%; ऊंचाई: 100%; स्थिति: पूर्ण; शीर्ष: 0; छोड़ दिया: 0; सही: 0; तल: 0; "> – James

उत्तर

7

Chrome ऐप में localStorage के लिए दो संदर्भों रहे हैं।

  1. ऐप का कोड स्वयं ही। localStoragedisabled for Chrome App code है। एकमात्र समाधान chrome.storage एपीआई का उपयोग करना है।

  2. (आपका मामला) एक <webview> अंदर localStorage। यह डिफ़ॉल्ट रूप से द्वारा अस्थायी होने के लिए डिज़ाइन किया गया है। यदि आप इसे जारी रखना चाहते हैं, तो आपको webview persistent partition का उपयोग करने की आवश्यकता है।

    If the storage partition ID starts with persist: (partition="persist:googlepluswidgets"), the webview will use a persistent storage partition available to all guests in the app with the same storage partition ID. If the ID is unset or if there is no 'persist:' prefix, the webview will use an in-memory storage partition.

    <webview id="browser" 
         src="link-to-my-website-which-calls-localstorage.com" 
         style="width:100%; height:100%; position:absolute; top:0; left:0; right:0; bottom:0;" 
         partition="persist:browser"> 
    </webview> 
    

    ध्यान दें कि chrome.storage एपीआई वेबव्यू सामग्री के संपर्क में नहीं किया जाएगा (जब तक आप एक स्क्रिप्ट इंजेक्षन)।

+0

मैंने विभाजन = "लगातार: ब्राउज़र" जोड़ा लेकिन स्थानीय स्टोरेज अभी भी पुनरारंभ करने पर खो गया है। – James

+0

कि @Spencer मेरी ओर से गलत वर्तनी, होना चाहिए 'persist', नहीं' persistent' था। मेरे द्वारा लिंक किए गए दस्तावेज़ों को पढ़ना इसे हल करेगा। – Xan

+0

यह काम किया। धन्यवाद :) – James

संबंधित मुद्दे