Według chrome packaged app API documentation, nie można używać window.localStorage
ale można użyć chrome.storage
dostać API o podobnej funkcji (i więcej).
Należy również zwrócić się o zgodę do przechowywania w swoim manifeście..
...
"permissions": [
"storage"
],
przyjrzeć the chrome
pub package które powinny zapewnić dostęp do Chrome * API w Dart (podczas importowania go w pubspec You” re szczególnie zainteresowany the chrome.storage
Dart library
Przykład zastosowania poniżej (za pomocą opcji aplikacji Chrome Pakowane w Dart Edytor nowa aplikacja) ....
import 'dart:html';
import 'package:js/js.dart' as js;
import 'package:chrome/chrome.dart' as chrome;
void main() {
print("Starting...");
query("button").onClick.listen(onClick);
}
onClick(e) {
document.body.append(new Element.html("<p>Clicked...</p>"));
// save the highscore 123
chrome.storage.local.set({'highscore':'123'}).then((storageArea) {
// load the highscore
chrome.storage.local.get(['highscore']).then((Map<String,String> vals) {
var highscore = vals['highscore'];
document.body.append(new Element.html("<p>$highscore</p>"));
});
});
}
z HTML, który wygląda tak:
...snip
<button>Click Me</button>
<script src="storage.dart" type="application/dart"></script>
<script src="packages/browser/dart.js"></script>
<script src="packages/browser/interop.js"></script>
<script src="packages/js/dart_interop.js"></script>
...
i oczywisty, że wygląda tak:
{
"name": "StorageExample",
"version": "1",
"manifest_version": 2,
"icons": {"128": "dart_icon.png"},
"permissions" : [
"storage"
],
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
havn't testowany go w Dartium, ale konwersja do JS i załadunku jako zapakowany aplikacji do Chrome 28 działa dobrze.
Ah! Czy wiesz, dlaczego usługa localstorage nie jest obsługiwana? Ponadto jestem zdezorientowany przykładami interfejsu API pamięci masowej Chrome za pomocą dart. Czy mógłbyś opublikować implementację funkcji składowania i ładowania? –
Dodano przykład kodu. Upewnij się, że dodajesz pakiet 'chrome' do swojego' pubspec.yaml' –
@ChrisBuckett Czy miałeś okazję wypróbować kod w Dartium? Z pewnych przyczyn nie mogę uzyskać, metoda chrome.local.set zwraca się bez umieszczania czegokolwiek w lokalnej pamięci. – nunobaba