我正在追踪我的应用程序的javascript报告的一些非常高的加载时间,并发现当窗口在后台或显示器关闭时,Android(和iOS)暂停一些JavaScript执行.
在Android上,我发现我可以使用window.onfocus和onblur事件来检测应用程序何时切换到后台(并且js执行很快会被暂停,至少对于新脚本而言),但是我找不到一种方法来检测屏幕打开或关闭.这可能吗?
(在Safari上,我除了相似的结果onfocus,并onblur没有可靠地触发.)
我正在与一个客户一起工作,他们希望他们的部分界面有一个有点自定义的滚动方法.他们不希望通常的滚动条可见; 他们希望台式机/笔记本电脑用户使用鼠标滚轮/触摸板滚动,他们希望移动用户用手指滚动.他们还希望使用向上箭头和向下箭头的图形来提供另一种滚动方法,并使用户明白可以滚动(因为实际的滚动条是隐藏的).客户端设置为此滚动方法.
我整理了一些代码,这些代码适用于我尝试过的所有设备/浏览器组合,除了Android的股票浏览器.我已通过以下配置确认了此问题:
但是,Android 4.4.2(模拟器)上不存在此问题.
为了使这个问题变得简单,我不包括上下箭头的图形和随附的逻辑.
这是代码(jsFiddle演示):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Demo</title>
<style>
#side_nav, .category {
position: absolute;
}
#side_nav {
-webkit-user-select: none;
}
.category {
display: none; /* Will be shown when user clicks on an option */
top: 0;
left: 150px;
}
.ul_wrapper, .ul_wrapper ul {
width: 125px;
height: 242px;
}
.ul_wrapper {
background: #ccc;
border: 3px solid #000;
border-radius: 6px;
text-align: center; …Run Code Online (Sandbox Code Playgroud)如果您有一些可点击的内容<a>,<input>或者<area>在此之前,您有一个具有更大z-index的绝对定位元素,则存在"点击"的错误行为.
我点击可点击元素位于前面元素后面的区域.在其他浏览器中,有一个正确的行为,即点击不会通过前面的元素.但只有在Android浏览器中,您才能点击前面元素并激活后面的元素.这是一个已知的错误,你无法避免它.它甚至在更新的版本中(我在官方Android模拟器中测试2.3.3).
某些论坛中描述了一些解决方法,但它们都不适用于我.
<iframe>或一个<a>我特别关注图像映射的区域元素.
有没有人有同样的问题,并设法解决它?我特别感兴趣的是对图像映射进行测试的解决方案.
我们的客户希望我们为输入字段显示数字键盘,所以基本上我创建了一个字段,如:
<input type="number" name="quantity" step=".01" value="0.00" />
但是,Galaxy Tablet会删除"." 并合并前后的数字,也禁用"." 在键盘上.
当使用type ="text"时,是否有其他方法可以解决此问题或在输入字段中显示数字键盘?
注意:我尝试使用模式属性(适用于iPhone).我在Android 2.1+的各种Android设备上测试了这个问题.我没有在任何其他HTC和三星设备上遇到此错误.
我想使用android 4冰淇淋三明治浏览器自动启动android html5视频.我尝试了许多html5视频的java脚本函数和autobuffer autoplay标签.但没有任何效果.我通过Android应用程序在webview中启动android chrome客户端,该客户端应该能够自动启动视频.单击播放按钮时播放视频但不播放自动播放.
是否限制在Android?另外需要注意的是,即使我们点击播放按钮并且视频正在播放和完成,也不会在chromeClient中调用回调方法.
我已经google了一下,在Android 4上找不到关于此问题的正面结果.
android html5-video android-browser android-4.0-ice-cream-sandwich android-4.4-kitkat
这是一个非常具体的问题,我找不到任何支持的文件证据,但有相当多的经验证据,尽管只是基于一部手机.
我们在办公室提供的单个Galaxy S4似乎没有支持border-radius它的股票浏览器中的属性.我已经测试了几个不同的网站,并尝试了所有不同的浏览器版本的属性(webkit,moz等),它似乎似乎不支持它.
因为我们只有1个S4可用(我已经四处询问,没有其他人拥有或知道有人这样做),并且因为通过该border-radius属性的圆角是CSS3的一个重要特征,我发现很难相信它们会故意删除它,这让我相信:
那么,有没有其他人遇到过这个问题,或者有没有人可以使用S4,他们可以查看http://css3test.com/以查看是否border-radius支持?
当我的移动设备使用Chrome的浏览器(使用端口转发)时,我可以使用Google的Chrome DevTools(chrome:// inspect)成功调试在移动设备上运行的Web应用程序的前端.我想知道是否有可能使用Android的原生浏览器做同样的事情,我的意思是预装在Android中的一个浏览器哪个应用程序启动器看起来像这样,只是为了更清楚,:-):

有没有办法做到这一点?因为当我在chrome中打开带有此浏览器的选项卡时://检查当然我没有得到打开的选项卡,我无法检查我的设备从本机浏览器查看的内容.
我需要在某种程度上这样做,因为我发现一些与UI相关的问题(CSS,JS)专门绑定到本机浏览器,实际上在chrome中所有工作都很漂亮,但在本机浏览器上没有.
我也尝试使用weinre并发现它非常有用,但我只能在局域网的上下文中使用它,这意味着我必须使用LAN IP地址绑定设备,实际上我需要从中访问Web应用程序http://localhost(就像在带有端口转发的Chrome DevTools中完成的那样)因为我使用的服务器端软件严格依赖于localhost(它不是我的,如果可以的话,我不会这样做).
那么,有没有办法在Android默认本机浏览器上完成此操作?使用weinre和/或Chrome DevTools?
感谢您的关注!
PS:我知道Android浏览器不再是来自Android 4.4的本地浏览器,无论如何,我需要兼容性,当然,它是可能的(它应该是,我猜).
我在我的Android应用程序上使用了一个浏览外部页面的webview.它有一些锚(<a>标签).当我按下它时,会出现黄色边框.
如何防止它并删除此边框?
我试过以下技巧:
// jQuery
$("a").focus(function(){
$(this).attr("hideFocus", "hideFocus");
});
// CSS
a, :focus {
outline: none;
}
Run Code Online (Sandbox Code Playgroud)
但没有成功.
谢谢 !
既然Android 4.1.1在某些手机上出现了,我注意到问题开始使用默认浏览器和这个操作系统弹出.
在我的情况下,我有一个使用Web视图(意味着默认浏览器)和大量画布的应用程序.
我希望通过这个主题,每个人发布问题和解决方案,如果你知道一个.
我将从:
问题:重复的画布更多信息位于:http ://code.google.com/p/android/issues/detail? id = 35474 解决方案 Canvas父元素不应该具有值为"hidden"的css属性"overflow"
问题 Canvas绘图看起来像素化更多信息:您可以阅读:http://www.html5rocks.com/en/tutorials/canvas/hidpi/并测试//html5rocks.com/en/tutorials/canvas/hidpi/demo/demo .html看你自己(在我的情况下,我不使用我使用画布构建的图像,我的绘图看起来像素化)也可以在//code.google.com/p/android/issues/detail?id=找到一些信息38470 解决方案(搜索一个)
问题画布消失了更多信息:我找不到其他人遇到这个,在我的情况下,它有时会重现. 解决方案(搜索一个)
PS:由于反垃圾邮件,我无法发布链接
更新(2013年9月3日):重复画布问题现在出现在具有Android 4.2.2和/或4.3的Nexus 7上.此外,您可能想知道只有在您的设备启用了"强制GPU渲染"时才会出现"重复画布"问题.
嗨,我有一个Web应该能够在智能手机和桌面浏览器上运行.虽然我期望在像Iphone这样的小型设备上获得一些奇怪的行为,但我非常有信心它会在Android Galaxy Tab上运行良好,这是我现在可以运行测试的Android设备.
现在我在Galaxy Tab上安装了一堆浏览器来测试:
在我使用过的桌面上
最后我有一个Iphone来测试.
该网站使用HTML5画布进行像素和基于精灵的绘制,没有花哨的变换,滤镜或效果,主要是简单的路径和多边形.我会听触摸事件并使用requestAnimationFrame正确的重绘.
总体而言,该应用程序在桌面浏览器上运行良好,它在iOS Safari(iPhone)和Firefox-on-Android上运行良好.Androids Native Browser给我带来了麻烦.我已将其设置为当javascript没有响应时屏幕刷新红色,并且在触摸屏幕时它几乎总是闪烁.
所以我想知道Android Native App和HTML5是否存在任何已知问题.由于本机浏览器的名称不存在,因此很难获得有关此内容的Google信息.有什么想法,我可以获得更多信息?什么可能导致本机Android浏览器滞后的想法?
关于这个问题有一些想法:
iOS不支持requestAnimationFrame,因此我将其替换为基于超时的替换.如果我在Android的本机浏览器上使用该替换,问题仍然存在.
我经常使用AJAX(google clojure xhrio)从服务器检索数据.可能是数据检索回调是cloggin我的事件管道?
是否已知日志控制台消息(console.log)会降低应用程序的速度?他们可以触发浏览器重新运行DOM树或任何相关的东西吗?
javascript html5 mobile-website android-browser html5-canvas
android-browser ×10
android ×7
css ×4
html5 ×3
javascript ×2
android-4.0-ice-cream-sandwich ×1
canvas ×1
css3 ×1
debugging ×1
galaxy ×1
galaxy-tab ×1
html-input ×1
html5-canvas ×1
html5-video ×1
ios ×1
webkit ×1
z-index ×1