Android 4.0.1 ломается Локальное хранилище WebView HTML 5?

У меня есть простая тестовая страница html5, которая использует LocalStorage для отображения / сохранения / повторного отображения части данных.

Этот код отлично работает в Android 2.3.x, но регистрирует исключение в 4.0.1 в строке 18 HTML-кода, который является первым вызовом localStorage.getItem () и по адресу на этом этапе JS останавливается.

Исключение: Неперехваченная ошибка: SECURITY_ERR: Исключение DOM 18 в /data/data/my.app.name/app_htmlData:18 Я также пробовал установить путь к базе данных на getCacheDir () с тем же результатом.

String htmlContent = "HTML content listed below";    
File sharedDir = getActivity().getDir("htmlData", Context.MODE_PRIVATE);
WebView browser = (WebView)v.findViewById(R.id.wvBrowser);

browser.setWebChromeClient(new WebChromeClient(){
    public void onExceededDatabaseQuota(String url, String databaseIdentifier, long  currentQuota, long estimatedSize,   long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { 
            quotaUpdater.updateQuota(estimatedSize * 2); 
        }
    });       
browser.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url){

        view.loadUrl("javascript:doTest()");

    });

browser.getSettings().setDatabaseEnabled(true);
browser.getSettings().setDatabasePath(sharedDir.getPath());
browser.getSettings().setDomStorageEnabled(true);
browser.loadDataWithBaseURL(mSharedDir.getPath(), 
            htmlContent, 
            "text/html", 
            "utf-8", 
            null);

HTML-код, отображаемый на странице, выглядит следующим образом:




    Simple localStorage test
    
    


    

-Simple localStorage test-

Источник доступен здесь

16
задан Karl Heinz Brehme Arredondo 22 February 2015 в 21:53
поделиться