2014-04-18 11 views
9

Mam rozszerzenie chrome, które zapisuje kilka danych do chrome.storage.local. Próbuję znaleźć proste sposoby na wyeksportowanie tych danych i spakowanie ich do pliku. Nie jestem ograniczony jakim typem pliku jest (JSON, CSV, cokolwiek), wystarczy, że będę mógł wyeksportować zawartość do samodzielnego (i wysyłającego) pliku. Rozszerzenie jest uruchamiane tylko lokalnie, a użytkownik miałby dostęp do wszystkich lokalnych plików.Rozszerzenie Chrome: Lokalna pamięć masowa, jak wyeksportować

Odpowiedz

9

Po pierwsze, trzeba uzyskać wszystkie dane.
Następnie serializuj wynik.
Wreszcie, zaoferuj go do pobrania użytkownikowi.

chrome.storage.local.get(null, function(items) { // null implies all items 
    // Convert object to a string. 
    var result = JSON.stringify(items); 

    // Save as file 
    var url = 'data:application/json;base64,' + btoa(result); 
    chrome.downloads.download({ 
     url: url, 
     filename: 'filename_of_exported_file.json' 
    }); 
}); 

Aby użyć metody chrome.downloads.download, trzeba zadeklarować zgodę "downloads" oprócz zgody w pliku manifestu storage.

+0

Dzięki za odpowiedź. Przeprosiny Jestem trochę opóźniony w weryfikacji. Jak tylko będę mógł i zakładam, że jest to najlepsza trasa, zaznaczę to poprawnie. Dziękuję Ci! – ZAR

0

Należy spojrzeć tutaj: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-extensions/AzO_taH2b7U

To pokazuje eksportu chrom pamięci lokalnej do JSON.

Nadzieja pomaga

+0

To nie jest ['chrome.storage'] (https://developer.chrome.com/extensions/storage), ale' localStorage'. –

+0

@ unit998x, dzięki za odpowiedź. Widziałem ten post wcześniej i działa dobrze, aby wyświetlić zawartość w formacie JSON. Ale to nie zachęca użytkownika do pobrania danych wyjściowych. Słyszałem, że ktoś poleca korzystanie z obsługi plików HTML5, ale byłoby łatwiej, gdyby istniał chromowy interfejs API do obsługi tego pliku (ponieważ jest już przechowywany w chrome.storage). Dzięki za pomoc! – ZAR

Powiązane problemy