Запись в каталог ресурсов Android во время выполнения? - PullRequest
0 голосов
/ 28 августа 2018

Я получаю обновления html-фрагментов из сетевого запроса, и мне нужно вставить их в локальный html-файл, который затем можно получить с помощью webView.loadUrl во время выполнения.

Я могу легко загрузить файл из /android_assets/myFile.html, используя webView.loadUrl, но не могу записать в файл, потому что каталог /android_assets недоступен во время выполнения: Запись в / android_assets во время выполнения

Итак, мой вопрос: есть ли другое место, где я могу разместить myFile.html, чтобы я мог записать его во время выполнения и загрузить в webView тоже?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

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

Context.getFilesDir()  

Разрешение не требуется
Типичная позиция: /data/data/app.package.name/files/

Context.getExternalFilesDir(null)  

Требуется WRITE_EXTERNAL_STORAGE, когда уровень API <= 18 <br> Типичная позиция: /sdcard/Android/data/app.package.name/files/

Environment.getExternalStorageDirectory()  

Требуется WRITE_EXTERNAL_STORAGE
Типичная позиция: / sdcard /

0 голосов
/ 28 августа 2018

Для этого вы должны загрузить контент из html, изменить его и сохранить в хранилище.

Usage: String yourData = LoadData("myFile.html");

public String LoadData(String inFile) {
        String tContents = "";

    try {
        InputStream stream = getAssets().open(inFile);

        int size = stream.available();
        byte[] buffer = new byte[size];
        stream.read(buffer);
        stream.close();
        tContents = new String(buffer);
    } catch (IOException e) {
        // Handle exceptions here
    }

    return tContents;    
 }

Для загрузки ваших данных в WebView. Вызовите метод loadData () WebView

webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
...