在使用WebView,加载Google文档查看器以及显示其他网址的PDF时,我一直有这种奇怪的行为。
基本上,它在Android 6.0中正常运行,但是当我在7.0上试用它时,它就不会滚动。我尝试加载其他网页,它们滚动得很好,甚至尝试为docs查看器提供不同的pdf,只是为了得到相同的结果。
这是我的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Irrelevant items cut to make this shorter... -->
<WebView
android:id="@+id/WebView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
这是我的代码:
final WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setLoadsImagesAutomatically(true);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2) {
settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
}
webView.setWebChromeClient(new WebChromeClient() {
/**
* {@inheritDoc}
*/
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.w(String.format("onConsoleMessage: %s -- From line %s of %s", consoleMessage.message(), consoleMessage.lineNumber(),
consoleMessage.sourceId()));
return true;
}
});
webView.loadUrl("https://docs.google.com/viewer?url=" + webViewUrl);
我有理由相信这是由JavaScript错误引起的,因为onConsoleMessage正在记录消息,例如“Uncaught TypeError:无法读取属性'类型'未定义 - 来自......的第554行”(其中4个具有不同属性)。
提前致谢,如果有人可以帮我解决这个问题。