Android WebView VS手机浏览器

时间:2011-09-10 18:02:02

标签: android android-webview android-browser

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

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

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

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

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

4 个答案:

答案 0 :(得分:13)

本文概述了您对制造商之间库存浏览器差异的猜测,这绝对是正确的:5 reality checks every team needs before working on Android webkit

......确实会造成麻烦和神秘/难以诊断/解决问题。

至于您WebView实施的问题:

jquery-mobile的版本可能会出现问题jquery-mobile loaded into an android WebView如果您使用的是jquery.mobile-1.0.1.min.js,则可能需要尝试未压缩的jquery.mobile-1.0.1.js

和Flash: - /祝你好运: Screen blinking when using a webview with flash

Flash in WebView not working on Android 3.2

Flash video not displaying in WebView for Android 3.0.1

加载SWF:

Load an SWF into a WebView

loading flash files (.swf) webview in android

祝你好运,看起来像设备,Android版本等很多变量。并且会在试用/错误时持续存在。

答案 1 :(得分:8)

默认情况下,

WebView受到限制。您应该致电setWebChromeClient和家人,以获得不错的浏览体验。此外,不要忘记setJavaScriptEnabled()和其他类似的东西。对不起,我的简洁......我认为你不需要例子。

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

答案 2 :(得分:8)

股票浏览器和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

答案 3 :(得分:1)

您有没有检查过这个问题:jquery-mobile loaded into an android WebView

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