Вопрос по android-webview, android, local-storage, webview – Использование локального хранилища в веб-браузере Android

3

Я экспериментирую с кодом Android: я хотел бы сохранить одно значение, используя локальное хранилище HTML 5. Для этого упражнения я ' используя такую простую страницу: http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_webstorage_local_clickcount

Мой манифест позволяет мне выходить в интернет, и это min-sdk из 7.

Вот мой код Java:

<code>public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webview = (WebView) findViewById(R.id.webview);
    WebView webView = (WebView) findViewById(R.id.webview);
    webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
    WebSettings webSettings = webview.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDatabasePath("");
    webSettings.setDomStorageEnabled(true);
    webview.setWebChromeClient(new WebChromeClient());
    webview.loadUrl("http://www.xyz.com/test.html");
    ///xyz.com/test.html is a sample  :)
    webview.setWebViewClient(new HelloWebViewClient());
}
</code>

Моя проблема в том, что когда я закрываю приложение, локально сохраненного значения больше нет. Я могу перейти на ту же страницу, используя браузер по умолчанию, и значение остается постоянным даже после закрытия эмулятора, что и является поведением, которое я ищу.

Это наверное что то предельно простое .... есть идеи?

Ваш Ответ

3   ответа
2

у вас по-прежнему будут проблемы: localStorage неправильно распределяется по всем веб-просмотрам.

Если вы хотите совместно использовать одни и те же данные в нескольких веб-обозрениях, единственный способ - восстановить их с помощью базы данных Java и интерфейса JavaScript.

Эта страниц на GitHub показывает, как это сделать.

надеюсь, это поможет!

Я также хотел бы упомянуть, что есть гибридный фреймворк, Cobalt Cobaltians.org) это может помочь вам управлять несколькими веб-просмотрами в ваших собственных приложениях. это инструмент как для нативных, так и для веб-разработчиков. Вам стоит это увидеть Guillaume Gendre
1

- даже с путем к базе данных, включением DOMStorage и т. Д. - использование файлов cookie вместо этого помогло мне.

7

пустая строка DatabasePath является проблемой. Я пробовал подобный код и с пустым путем строки значение не сохраняется после выхода из приложения. Если я определю конкретный путь к базе данных, значение останется, как и ожидалось.

Пытаться

webSettings.setDatabasePath("/data/data/"+this.getPackageName()+"/databases/");
Да, сэр ... это именно то, что мне нужно !!!! Большое спасибо! MrM
@ MrM, сэр, если ваша проблема решена, вы должны пометить ее как правильный ответ и поставить ответ, вы видите галочку слева от ответа? neevek
Ты должен заменить"/data/data" с "context.getFilesDir (). getPath ()" ban-geoengineering

Похожие вопросы