2015-11-25 9 views
6

マシンをオン/オフする間にデータ(文字列として数バイト)を保存する必要があるクロムキオスクアプリケーションがあります。 しかし、これまでに何を試みても、localStorageは再起動時に消去されるようです。クロムアプリケーションlocalStorageは持続しておらず、chrome.storageは機能しません

私はクロームに行く://はChromeアプリを検査する/#アプリケーションを検査し、ブラウザにクロム内のlocalStorage

に係るコンソールには、関連するエラーがない、私は単にのlocalStorageを使用しますが、このうキオスクアプリケーションでは維持されません。コードの

例:ここでのアドバイスに従い

window.localStorage.setItem(id, temp); 
window.localStorage.getItem(id); 

Persist data across single app kiosk mode executions 私が設定以下の設定でChrome管理ライセンスを持っていますが、これは何の違い(JPGを添付参照)を行っているようには見えない

キオスクアプリで

、私はmanifest.jsonを

におけるストレージ権限を持っている私はchrome.storageに移行しようとしたが、ときに電子私は未定義のエラーを取得しますver私は試してこれを行う。このエラーは、Chromeアプリケーションとブラウザで実行しているときに発生する。

私はここで解決策を試したが、うまくいかなかった。コメントを追加しましたから https://groups.google.com/a/chromium.org/forum/#!topic/chromium-apps/_YcOT4PcdAQ

Chrome Management Settings


CODE:未定義のエラーを常に取得

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 'KEY1': '最初の' \t 'KEY2': '第2'、 \t 'KEY3': '三'、 \t 'KEY4': '第'、 \t 'KEY5': '第5の ' }、function(){ \t \t console.debug('設定が保存されました '); \t }); error:TypeError:未定義の 'local'プロパティを読み取ることができません – James

+0

コードがWebアプリケーション経由でChromeアプリケーションから呼び出されることはありますか? CODE: <身体クラス= "フルトリム"> <フォームのid = "キオスク" モデル= "のAppConfig" ビュー= "KioskView"> James

答えて

7

をChromeアプリでlocalStorageのための2つの状況があります。

  1. アプリのコードそのもの。 localStoragedisabled for Chrome App codeです。唯一の解決策は、chrome.storage APIを使用することです。 <webview>内部

  2. (お使いの場合)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 APIは、WebViewのコンテンツにさらされることはありませんのでご注意ください。

+0

partition = "persistent:browser"を追加しましたが、localStorageは再起動時に失われます。 – James

+0

@Spencerそれは私の部分のタイプミスであり、 'persist'でなく' persistent'でなければなりません。私がリンクしているドキュメントを読むことでそれを解決できます。 – Xan

+0

それは働いた。ありがとう:) – James

関連する問題