36

我在使用WebViewin 时遇到了很多奇怪的行为,Android我想知道为什么每部手机上WebView的安装和安装之间有这么多差异?Browser

例如,我开发了一些必须显示HTML内容的应用程序,其中包含jquery-mobileflashjavascript、嵌入的 YouTube 等。所以我在里面显示这个页面时遇到了很多问题WebViews。要么他们根本不会显示,只是空白,要么视频不会播放等等。而奇怪的是,如果在Browser手机上安装打开,它们可以正常工作。我启用了 JavaScript,我尝试了 diffrent WebSettings,我已经设置WebChromeClientWebViewClient寻找 javascript 错误......但没有任何效果。

所以我得出的结论是,该组件与手机上安装WebView的应用程序完全不同。Browser我认为每个制造商都会制作自己的Browser页面以支持尽可能多的页面,并且WebView仍然是标准页面,包含在Android SDK.

我对吗?或者还有其他原因/解释?谢谢。

编辑: @ondoteam 建议的所有内容当时都已启用和设置。我不再有对那些网站的引用,这些网站无论如何都是内部的。

4

4 回答 4

15

本文概述了您对制造商之间库存浏览器差异的猜测,这绝对是正确的:每个团队在使用 Android webkit 之前需要进行 5 次现实检查

...这确实会引起麻烦和神秘/难以诊断/解决问题。

至于您的WebView实施问题:

版本jquery-mobile可能是一个问题jquery-mobile 加载到 android WebView如果您正在使用jquery.mobile-1.0.1.min.js您可能想尝试未压缩的 jquery.mobile-1.0.1.js

和 Flash :-/ 祝你好运: 使用带有 Flash 的 webview 时屏幕闪烁

WebView 中的 Flash 在 Android 3.2 上不起作用

Android 3.0.1 的 WebView 中不显示 Flash 视频

加载 SWF:

将 SWF 加载到 WebView

在android中加载Flash文件(.swf)webview

祝你好运,设备、Android 版本等似乎有很多变量。并且会通过试验/错误来持久化。

于 2012-03-19T02:10:55.417 回答
10

股票浏览器和 WebView 不同。使用所有的调整,如

    WebView browser;

    browser.clearFormData();
    browser.clearHistory();
    browser.clearCache(true);

    browser.getSettings().setAppCacheEnabled(true);
    browser.getSettings().setDatabaseEnabled(true);
    browser.getSettings().setDomStorageEnabled(true);
    browser.setWebChromeClient(new WebChromeClient());

它仍然无法正确加载高分辨率图像,Android 浏览器可以很好地加载这些图像。只有部分图像可以在 webview 屏幕上可见,而该屏幕完全显示在普通的 android 浏览器上。使用最新的 Android 4X SDK 也可以观察到这种行为。这意味着 android 默认浏览器会显着调整 webkit/webview 代码以显示任何 url

于 2013-06-10T06:56:41.090 回答
8

WebView默认情况下是受限的。您应该打电话给setWebChromeClient家人以获得体面的浏览体验。此外,不要忘记setJavaScriptEnabled()和其他类似的东西。对不起我的简短......我认为你不需要例子。

http://developer.android.com/reference/android/webkit/WebView.html

于 2012-01-25T04:06:59.043 回答
1

你检查过这个问题吗:jquery-mobile 加载到 android WebView

可能是您使用了错误的库。无论如何都要检查。

于 2012-03-18T18:41:19.950 回答