我正在研究编写本机平板电脑应用程序(Android)的HTML版本,研究机构使用该版本来测试用户响应时间。即:在设定的时间内显示一个屏幕,然后测量用户选择响应所需的时间。
有用的是知道这是否像通过本机代码一样通过HTML轻松完成 - 我需要确切地知道屏幕呈现给用户与他们触摸响应的时间之间的时间。由于HTML呈现是在浏览器的命令下进行的,有没有办法知道 - 非常精确地 - 当屏幕实际呈现给用户时,因此定时器应该启动?我的想法是,最好做一些事情,例如将div状态从“隐藏”设置为“可见” - 或使用动画库如Greensock,但我觉得这可能是“当你们所有人都遇到问题时“这是一把锤子” - 也就是说,这些是我所知道的工具,我不知道这些是我应该使用的。
我试图了解这是否可行 - 我没有做任何原生代码平板电脑开发,已经做了相当多的HTML,需要说服他们切换,如果我要去做工作。感谢您提供的任何信息。
答案 0 :(得分:1)
也许你可以使用javascript&您的HTML页面中的JQuery记录加载的确切时间?
$(document).ready(function(){ //notice that $(document).ready is JQuery
// Your code here
});
我猜您在WebView中通过javascript调用原生Android方法,但如果没有,您可以通过首先注入包含在加载页面时调用的Object的方法来实现:
WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
然后,上面用于通知Java对象的JQuery代码将是:
$(document).ready(function(){
Android.documentReady(); // method to call in Java Object
});
注意: 这是非常实验性的,我不知道将JQuery加载到WebApp中是否是一个好主意,但是随着在任何地方使用JQuery,它应该不是问题。 无论如何,当文档/ html页面完全加载时调用$(document).ready(function ...) - 在标准javascript中执行类似的“listener”是不推荐,但可能。 (如果你想跳过JQuery,请提供更多信息; https://stackoverflow.com/a/7053197/3911640)
有关使用JavaScript调用原生Android对象的更多信息:http://developer.android.com/guide/webapps/webview.html
编辑: 您也可以使用HTML5执行此操作:
<body onload="Android.documentReady()">
注意: 不是我的专业领域,没有经过测试,但实际上是可行的。我建议你研究哪种方式是最可靠的,但理论上应该在所有(包括图像等)加载并呈现给用户时调用它们。
HTML5函数的W3C文档:http://www.w3schools.com/jsref/dom_obj_event.asp