Articles of WebKit

在WebView中显示Android资产文件?

我已经看到了关于从资产提供WebView页面的问题的各种讨论,其中没有一个看起来是确定的。 我希望能够使用webview显示存储在项目资产中的html(和包含的css)文件。 我发现wv.loadUrl(“file:///android_asset/html_no_copy/demo_welcome.html”)显示该文件没问题,但是demo_welcome.html中的链接,无论是本地(没有url前缀文件名)还是绝对 – 相同表格如同送入loadUrl – 不起作用。 他们在视图上显示“网页不可用”错误。 WebView wv = (WebView)this.findViewById(R.id.splashWebView); wv.loadUrl(“file:///android_asset/html_no_copy/https://stackoverflow.com/questions/5320288/displaying-android-asset-files-in-a-webview/test.html”); // Works 要么 wv.loadUrl(“file:///android_asset/html_no_copy/demo_welcome.html”); // Works 但是demo_welcome.html中的以下链接都不起作用: CLICK HERE OR HERE 我知道我可以通过编写内容提供商来解决这个问题,但这看起来很极端。 我希望这可以从SDK 1.6(4)开始工作。 有谁知道这是否可以用HTML完成,还是需要克隆一些代码来加载数据?

在Samsung Android浏览器上启用真正的固定定位

自2.2以来,Android浏览器支持固定定位,至少在某些情况下,例如关闭缩放时。 我有一个没有JS的简单HTML文件,但我试过的三款三星手机上的固定定位是完全错误的。 不是真正的固定定位,标题滚动出视图,然后在滚动完成后弹回原位。 对于我测试过的任何配置,Android SDK仿真器都不会发生这种情况(2.2,2.3,2.3 x86,4.0.4)。 在三星手机上的应用程序中使用WebView时也不会发生这种情况:在这些情况下,定位按预期工作。 有没有办法让三星Android“股票”浏览器使用真正的固定定位? 我测试过:1。三星Galaxy 551,Android 2.2 2.三星Galaxy S,Android 2.3 3.三星Galaxy S II,Android 2.3 示例代码: h1 { position: fixed; top: 0; left: 0; height: 32px; background-color: #CDCDCD; color: black; font-size: 32px; line-height: 32px; padding: 2px; width: 100%; margin: 0;} p { margin-top: 36px; } Header Long text goes here 预期的行为是灰色标题填充屏幕的顶部并保持放置无论您滚动多少。 在三星Android浏览器上,它似乎滚动出视图,然后在滚动完成后弹回到位,好像使用Javascript模拟固定定位,而不是。 […]

Android 4.0 ICS Webview与“未知铬错误:-324”

我编写一个浏览器在Android 4.0 ICS中使用WebView。 但是当我访问某个网站时,发生错误。 我重写WebViewClient中的onReceivedError方法,并打印logcat。 08-28 09:22:00.549: D/chromium(22081): Unknown chromium error: -324 08-28 09:22:32.658: E/sky-mobi(22081): errorCode:-1 description:A network error occurred。failingUrl:https://172.16.28.5/portal/logon.htm 08-28 09:22:32.705: W/Web Console(22081): The page at “https://172.16.28.5/portal/logon.htm” displayed insecure content from file:///android_asset/webkit/android-weberror.png. 08-28 09:22:32.705: W/Web Console(22081): at null:1 我testing了与Android 2.3.3的URL,它完全正常工作。

Android浏览器 – JavaScript window.innerWidth返回错误的值

我正在使用Android G1默认的网页浏览器,而且我正在使用JavaScript进行开发 – 当我放大或缩小网页时,无法获得真实的视觉宽度和高度。 看来,我正在从window.innerWidth,当我放大/缩小出错的值。 我想要做的是 – 在视觉固定的位置显示一个元素,即使在缩放和滚动页面时也是如此。 – 所以用户总是可以看到那个元素,不pipe他是在缩放还是在滚动。 我已经尝试使用“固定”的位置没有成功。 视口元标记的使用可能不是一个好的解决scheme,因为我不想限制网页的尺寸,我希望缩放function将被支持。 有没有人有一个解决scheme或想法如何我可以做到这一点?

移动webkit内存消耗

我们正在为移动设备(Android + iOS)开发HTML5应用程序。 但是最大的问题是内存消耗 – 内存使用量增长非常快,应用程序变得迟缓。 与HTML(JavaScript)应用程序中的内存泄漏作斗争的最佳实践,提示,工具,解决scheme等是什么? PS我们只针对Webkit浏览器

寻找iScroll的替代品(iOS / Webkit上的滚动Div)

我通过数据移动应用程序构build了一个复杂的表单,现在正在寻找解决scheme来坚持标题和页脚的位置。 在我的虚拟桌面上,已经使用Chrome和Safari开发和testing了虚拟桌面,我只是定位了页眉和页脚以及内容部分,在Windows的resize事件中由JavaScript设置了哪个高度。 这不是移动世界的正确方式,因为移动WebKit不支持overflow:auto。 我自己尝试了一些东西,我也看了一下iScroll。 事实上,iScroll在我的iPad上崩溃了safari,而没有这个组件的应用程序运行的非常stream畅。 我有很多比较复杂的表单,这可能是iScroll的挑战,我认为这是不可取的。 所以我正在寻找其他的方式来实现我的目标(坚持页眉和页脚),而不让用户使用两个手指滚动(实际上,几乎没有人知道“伎俩”)。 有什么build议么? 谢谢!

获取webview的最后一个加载url,而不需要在Android中执行webView.goBack()

我想logging历史url或上次加载的url,而无需手动存储历史url。 那可能吗?

Android浏览器select字段时出现奇怪的行为

Android Webkit浏览器(在2.2,2.3和3.0上进行testing)似乎在将模式元素放在另一个之上时会出现怪异的行为。 在这个例子中 …我正在显示一个z-index 200的jQuery UIdateselect器 ,一个覆盖整个文档高度和宽度的灰色覆盖div,z-index 199,后面是所有常规表单。 在上面的示例中,我点击了2011年的下拉控件,而不是select该下拉列表,焦点位于灰色叠加层之下的textarea元素上。 注意:桌面Firefox浏览器或iPhone Webkit浏览器不会发生这种情况。 任何想法有什么问题? 或者如何解决这个问题? 我想避免修改窗体(例如禁用所有元素,而覆盖显示)…

有没有办法消除移动触摸设备上的点击滞后?

在移动设备(iPad,Galaxy Tab)上查看网站时,点击某个元素(常规链接或使用javascript / jquery进行点击的任何其他元素)总会有滞后现象。 在网上阅读时,我发现浏览器使用touchstart后跟touchend事件,然后触发常规的点击事件。 有没有一种方法来获得更敏感的点击并消除延迟的点击事件? 也许通过使用JavaScript,或其他?

WebView导致SQLiteDiskIOException

我已经有一段时间(通过Flurry / acra)获取SQLiteDiskIOExceptions的报告。 我一直无法在本地重现这个问题,但是这是我最频繁的崩溃,在糟糕的一天发生了五十次。 在Android 2.3.x下,它们似乎特别频繁。 我在自己的代码中完全不使用SQL,但是我有多个WebView同时运行(两个,另外还有一个广告SDK)。 这些错误都是由WebView引起的,通过以下任何一种方法: android.webkit.WebViewDatabase.clearCache android.webkit.WebViewDatabase.flushCacheStat android.webkit.WebViewDatabase.deleteCookies android.webkit.WebViewDatabase.removeCache (还收到了一个android.database.sqlite.SQLiteDatabaseCorruptException的报告,但这些非常罕见)。 我评论了任何有关在我自己的代码中清除WebViewcaching的事情,但是这并没有帮助。 完整的LogCat在这里转储。 有没有人知道我可以预防,捕捉或更清楚地隔离这些exception的原因? 它们太频繁了,只能由不好的SD内存引起。 谢谢! 编辑:请求的源代码: browser=(WebView)findViewById(R.id.webkit); browser.setWebViewClient( new CustomWebViewClient(this,browser) ); WebSettings webSettings = browser.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setPluginsEnabled(true); browser.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY); webSettings.setBuiltInZoomControls(true); browser.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { progressbarhorizontal.setProgress(progress); } }); XML: <WebView android:id="@+id/webkit" android:layout_width="fill_parent" android:layout_height="fill_parent" android:focusable="true" android:nextFocusDown="@+id/bottomview"></WebView>