我正在调查编写原生平板电脑应用 (Android) 的 HTML 版本,研究机构使用它来测试用户响应时间。即:屏幕显示一段设定的时间,然后测量用户选择响应所花费的时间。
了解通过 HTML 是否像通过 native 代码一样容易地完成此操作会很有帮助——我需要确切地知道屏幕呈现给用户和他们触摸响应的时间之间的时间。由于 HTML 渲染是在浏览器的命令下进行的,是否有办法非常准确地知道屏幕何时真正呈现给用户,以及计时器何时应该开始?我的想法是,最好做一些事情,比如将 div 状态从“隐藏”设置为“可见”——或者使用像 Greensock 这样的动画库,但我觉得这可能是“当你所有的问题时,每个问题都是钉子”有一把锤子”——也就是说,这些是我知道的工具,我不知道这些是否是我应该使用的。
我正在尝试了解这是否可行——我没有做过任何本地代码平板电脑开发,做过相当多的 HTML,如果我要做的话,需要说服他们转换工作。感谢您提供的任何信息。
最佳答案
也许您可以在 HTML 页面中使用 javascript 和 JQuery 来记录加载的确切时间?
$(document).ready(function(){ //notice that $(document).ready is JQuery
// Your code here
});
我猜你通过 WebView 中的 javascript 调用原生 Android 方法,但如果不是,你可以通过首先注入(inject)包含页面加载时调用的方法的对象来实现:
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 中执行类似的“监听器”是不推荐的,但可能。 (如果您想跳过 JQuery,请了解更多信息;https://stackoverflow.com/a/7053197/3911640)
有关使用 JavaScript 调用 native 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
关于android - 平板电脑上的响应时间测量应用程序 : difference in latency between HTML and native Android/iOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26413933/