Android 2.2 localstorage - PullRequest
       1

Android 2.2 localstorage

1 голос
/ 05 октября 2011

В Android 2.2 я не могу получить значение локального хранилища после принудительного закрытия приложения. Если у вас есть предложения ... Пожалуйста, посмотрите на мой код:

    WebSettings  ws= appView.getSettings();
    ws.setDatabasePath("/data/data/com.decodeSoutions.hive/app_database");
    ws.setJavaScriptEnabled(true);
    ws.setDatabaseEnabled(true);                                                                                                                       
    ws.setDomStorageEnabled(true);

Спасибо в Adv

1 Ответ

3 голосов
/ 07 февраля 2012

У меня была такая же проблема. Сначала я загружаю свои данные с помощью .loadDataWithBaseURL () с активами dir в качестве базового URL, и возникает проблема. В Android 2.1 это прекрасно работает с setDomStorageEnabled (true), но в 2.2 вы должны сделать следующее.

Сначала:

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setDatabaseEnabled(true);
    webView.getSettings().setDatabasePath("/data/data/"+ getPackageName()+"/databases/");

Теперь начинается сложная часть:

Запишите весь html-код в файл, потому что функции loadData каким-то образом отключают локальное хранилище.

    try {
        FileOutputStream fos = openFileOutput("test.html", Context.MODE_PRIVATE);
        fos.write(yourHTMLString.getBytes());
        fos.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    webView.loadUrl("file://" + getFilesDir().getAbsolutePath()+ "/test.html");

Но будьте осторожны, если вы загружаете относительные css или js в html, потому что ваш базовый путь не установлен. Чтобы это исправить, введите "file: /// android_assets /" в свой HTML-код, например:

    <link rel="stylesheet" href="file:///android_asset/${stylesheet}" type="text/css" />
    <script type="text/javascript" src="file:///android_asset/js/jquery.js"></script>
    <script type="text/javascript" src="file:///android_asset/js/jstorage.js"></script>

Надеюсь, это кому-нибудь поможет. Это стоит мне часов!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...