- From: David Bruant <bruant.d@gmail.com>
- Date: Mon, 05 Nov 2012 18:46:55 +0100
- To: public-device-apis@w3.org
Hi, Sorry, I'm arriving late to the party, but a couple of things are unclear to me in the spec. In the following case: navigator.vibrate(1000); console.log('yo'); What happens? 1) The device vibrates for a second then logs 'yo' 2) The device starts vibrating, logs 'yo' while vibrating and ends vibrating 3) something else (explain) Case 1 would be an aberrant waste of CPU time especially for long sequences of vibrate/idle. Also games are known to use UX trick to compute things in the background. Vibrating to deconcentrate the user may be one of these tricks. In case of 2, how do you know when the device stopped vibrating? I assume knowing when the device stopped vibrating is an important information when you want your user to have a compelling experience. Step 3, 5 and 7 of the processing vibration patterns algorithm mention implementation-dependent limits and throw according to these. However, an application has no way to know these limits, so an application can't adapt its behavior to different implementation limits. I think it would be nice of the implementation to provide these limits as constants. I'm afraid that from an application author perspective, the only alternative is try out values to figure out the limits and "try out values" means actually vibrating or do weird hacks like: try{ navigator.vibrate(10000); navigator.vibrate(0); // cancel vibration if it occured } catch(e){ // too high of a value } Based on how the API is designed, it seems that it is unusable in WebWorkers. The API seems to assume that there is only one "vibration resource". If 2 WebWorkers were to use the API concurrently, they would probably cancel each other vibrations out resulting in a poor user experience. Is using the API in a WebWorker a planned use case or is it on purpose that it's completely banned? Thanks, David
Received on Monday, 5 November 2012 17:47:30 UTC