在运行时写入 android 资产目录?
Writing to android assets directory at runtime?
我从网络请求中获得 html 片段更新,需要将它们插入到本地 html 文件中,然后可以在运行时使用 webView.loadUrl
获取该文件。
我可以使用 webView.loadUrl
从 /android_assets/myFile.html
轻松加载文件,但我无法写入文件,因为 /android_assets
目录在运行时不可访问:Writing to /android_assets at runtime
所以我的问题是,是否有另一个位置可以放置 myFile.html
以便我可以在运行时写入它并将其加载到 webView
中?
为此,您应该从 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 中加载您的数据。调用WebView的loadData()方法
webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
资产目录是只读的,不能动态更改。
您可以读取流动目录中的白文件:
Context.getFilesDir()
无需许可
典型位置:/data/data/app.package.name/files/
Context.getExternalFilesDir(null)
当 api 级别 <= 18
时需要 WRITE_EXTERNAL_STORAGE
典型位置:/sdcard/Android/data/app.package.name/files/
Environment.getExternalStorageDirectory()
需要WRITE_EXTERNAL_STORAGE
典型位置:/sdcard/
我从网络请求中获得 html 片段更新,需要将它们插入到本地 html 文件中,然后可以在运行时使用 webView.loadUrl
获取该文件。
我可以使用 webView.loadUrl
从 /android_assets/myFile.html
轻松加载文件,但我无法写入文件,因为 /android_assets
目录在运行时不可访问:Writing to /android_assets at runtime
所以我的问题是,是否有另一个位置可以放置 myFile.html
以便我可以在运行时写入它并将其加载到 webView
中?
为此,您应该从 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 中加载您的数据。调用WebView的loadData()方法
webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
资产目录是只读的,不能动态更改。
您可以读取流动目录中的白文件:
Context.getFilesDir()
无需许可
典型位置:/data/data/app.package.name/files/
Context.getExternalFilesDir(null)
当 api 级别 <= 18
时需要 WRITE_EXTERNAL_STORAGE
典型位置:/sdcard/Android/data/app.package.name/files/
Environment.getExternalStorageDirectory()
需要WRITE_EXTERNAL_STORAGE
典型位置:/sdcard/