我一直在 android 中使用 epublib 在 webview 中加载 epub 文件。这是我加载文件的代码
public void getEntireBook(){
Spine spine = book.getSpine();
List<SpineReference> spineList = spine.getSpineReferences() ;
int count = spineList.size();
TextView tv=new TextView(getApplicationContext());
tv.setText(Integer.toString(count));
StringBuilder string = new StringBuilder();
for (int i = 0; count > i; i++) {
Resource res = spine.getResource(i);
string.append(res.getTitle());
RowData row = new RowData();
row.setTitle(string.toString());
row.setResource(spine.getResource(i));
contentDetails.add(row);
try {
InputStream is = res.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
while ((line =(String) reader.readLine()) != null) {
}
} catch (IOException e) {e.printStackTrace();}
//do something with stream
} catch (IOException e) {
e.printStackTrace();
}
webView.loadData(line, "text/html;charset=UTF-8",null);
}
}
有些文件加载正常,从 20 mb 到 70 mb 的文件加载正常,但 90 mb 以上的文件会出现问题,要么显示空白 webview,要么屏幕变黑。
另一个问题是一些文件有很大的文本和丰富的图形内容,如图片、装饰字体。当我在 webview 中加载它们时,会显示小点,当我放大文本时会分散。
所以我有两个问题
- 如何在 webview 中呈现像 150 mb 文件这样的大文件
- 如何加载丰富的图形内容。
我已经使用了每个 webview 设置,如 setrenderpriority high 等,将 js 注入 webview 但我无法找到解决方案。