Код: Выделить всё
/data/data/com.me.myapp/files/autogen.html
Код: Выделить всё
public class FileUtils {
public static void saveToInternalFile(Context ctx, String fname, String html) {
try (var fos = Files.newOutputStream(
Paths.get(ctx.getFilesDir().getAbsolutePath(), fname),
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING)) {
fos.write(html.getBytes(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
}
public static String constructInternalFileUrl(Context ctx, String filename) {
return "file://" + new File(ctx.getFilesDir(), filename).getAbsolutePath();
}
}
Но пытаюсь загрузить в том же приложении, в котором он был создан (тот же сеанс среды выполнения), в WebView, как следующий URL-адрес:
Код: Выделить всё
file:///data/user/0/com.me.myapp/files/autogen.html
Веб-страница по адресу file:///data/user/0/com.me.myapp /files/autogen.html не удалось загрузить, потому что: net::ERR_ACCESS_DENIED
И это несмотря на то, что были заданы настройки соответствующих флагов WebView:
Код: Выделить всё
WebSettings webSettings = getSettings();
webSettings.setDomStorageEnabled(true);
webSettings.setAllowContentAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
Обратите внимание: это не дубликат
- net::ERR_ACCESS_DENIED (file:///data/user/0/packagename/files/appname/app_id/idex.html) в Android
- ERR_ACCESS_DENIED в веб-просмотре в Android - только с SDK 30
Подробнее здесь: https://stackoverflow.com/questions/793 ... view-flags
Мобильная версия