John Little created CB-8830:
-------------------------------
Summary: application locks up when run with "cordova serve"
Key: CB-8830
URL: https://issues.apache.org/jira/browse/CB-8830
Project: Apache Cordova
Issue Type: Bug
Components: Plugin Device
Environment: windows 8.1 and OSx
Cordova 4.3.0
Reporter: John Little
When the Device plugin is added to a cordova project and the software is tested
using the "cordova serve" option (run a local web server for testing with a
browser) the software locks up and fails to start.
There is an exception in the Device plugin as below
Exception calling native with command :: Device :: getDeviceInfo
::exception=ReferenceError: 'Windows' is undefined
This is not supprising as there is no device, it's just serving the app through
a web server.
However the software locks up because the "onCordovaInfoReady" is never fired.
A simple fix is to modify the device.js file as below
channel.onCordovaReady.subscribe(function() {
var callFailed = true; // NEW assume the getInfo fails
me.getInfo(function(info) {
callFailed = false; // NEW it's all good
//ignoring info.cordova returning from native, we should use value
from cordova.version defined in cordova.js
//TODO: CB-5105 native implementations should not return
info.cordova
var buildLabel = cordova.version;
me.available = true;
me.platform = info.platform;
me.version = info.version;
me.uuid = info.uuid;
me.cordova = buildLabel;
me.model = info.model;
me.manufacturer = info.manufacturer || 'unknown';
channel.onCordovaInfoReady.fire();
},function(e) {
// NEW failure will be handled below
utils.alert("[ERROR] Error initializing Cordova: " + e);
});
// new code to stop the system locking up
if(callFailed) {
me.available = false; // NEW can't be available as getInfo failed
channel.onCordovaInfoReady.fire(); // NEW fire event to allow system
to work
}
With this mod inplace the software will work, obviously the device information
is invalid.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]