【发布时间】:2016-08-03 06:38:48
【问题描述】:
有没有办法提高将本地.html 文件加载到WebView 中的速度。 .html 文件存储在/assets 文件夹中。
正如您在视频中看到的(抱歉,链接已损坏!),TextView(红色背景)在过渡开始之前呈现,而 WebView 中的文本显示然后。我怎样才能实现像 TextView 一样快地加载 WebView?
//current implementation
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.loadUrl("file:///android_asset/disclaimer.html");
摘要
这是不可能的。我在这里尝试了所有的 cmets 并没有什么不同。
我问的原因是,我们有一个适用于 iOS 和 Android 的应用程序,主要由简单的TextViews 和Images 组成。所以我们产生了创建本地 html 文件的想法,我们可以在两个应用程序中使用这些文件。在iOS 这就像一个魅力,但在Android 我们无法摆脱加载时间,所以我总是有一个空白屏幕,100-200 毫秒后出现内容。
如果 Activity 可见,我猜 Androids WebView 会开始渲染。这在在线模式 中完全有意义,因为您不想在用户真正关注它们之前加载多个 html 页面,这些页面是用户在后台通过新的点击打开的。但是,在离线模式(存储在应用程序assets 中的本地html 文件)此行为是不必要的,但您无法更改它。
现在我们真的知道为什么 phonegap & co 很烂了。
仅作记录:
最后,我使用了一个带有空 LinearLayout 容器的活动,您可以在其中以编程方式插入内容。每种样式(标题 1、标题 2、内容...)都有自己的布局 xml 文件
public void insertHeadline(int id){
String text = getString(id);
TextView headline = (TextView) inflater.inflate(R.layout.layout_text_headline, null, false);
headline.setText(text);
//add this TextView to the empty container
myLinearLayoutContainerView.addView(headline);
}
【问题讨论】:
标签: android html performance android-webview android-assets