CordovaFirefoxOS: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 15: Line 15:
! FirefoxOS
! FirefoxOS
! Differences
! Differences
! Status (%)
! Developer
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_accelerometer_accelerometer.md.html#Accelerometer Accelerometer]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_accelerometer_accelerometer.md.html#Accelerometer Accelerometer]
| [https://developer.mozilla.org/en-US/docs/Web/Reference/Events/devicemotion devicemotion], [https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.acceleration DeviceMotionEvent.acceleration]
| [https://developer.mozilla.org/en-US/docs/Web/Reference/Events/devicemotion devicemotion], [https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent.acceleration DeviceMotionEvent.acceleration]
| Cordova provides <code>getCurrentAcceleration</code> and <code>watchAcceleration</code>. This is easy to simulate using <code>DeviceMotionEvent</code>. <code>getCurrentAcceleration</code> will simply call it once and clear the watcher afterwards. The only advantage will be the <code>acceleratorOptions</code> which contains <code>frequency</code> property. There is also a <code>timestamp</code> property returned to Cordova's callback.
| Cordova provides <code>getCurrentAcceleration</code> and <code>watchAcceleration</code>. This is easy to simulate using <code>DeviceMotionEvent</code>. <code>getCurrentAcceleration</code> will simply call it once and clear the watcher afterwards. The only advantage will be the <code>acceleratorOptions</code> which contains <code>frequency</code> property. There is also a <code>timestamp</code> property returned to Cordova's callback.
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_camera_camera.md.html#Camera Camera]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_camera_camera.md.html#Camera Camera]
Line 27: Line 31:
* target size
* target size
* camera direction
* camera direction
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_media_capture_capture.md.html#Capture Capture]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_media_capture_capture.md.html#Capture Capture]
| [https://developer.mozilla.org/en-US/docs/WebAPI/Web_Activities WebActivities]
| [https://developer.mozilla.org/en-US/docs/WebAPI/Web_Activities WebActivities]
| The main differences are in the object returned to the callbacks, some on-the-fly transition will be needed.
| The main differences are in the object returned to the callbacks, some on-the-fly transition will be needed.
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_compass_compass.md.html#Compass Compass]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_compass_compass.md.html#Compass Compass]
| [https://developer.mozilla.org/en-US/docs/Web/Reference/Events/deviceorientation deviceorientation]
| [https://developer.mozilla.org/en-US/docs/Web/Reference/Events/deviceorientation deviceorientation]
| FirefoxOS provides support as an event. Use <code>absolute</code> parameter to check if the device is able to provide the Earth coordinate frame   
| FirefoxOS provides support as an event. Use <code>absolute</code> parameter to check if the device is able to provide the Earth coordinate frame   
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_connection_connection.md.html#Connection Connection]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_connection_connection.md.html#Connection Connection]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.navigator.connection navigator.connection]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.navigator.connection navigator.connection]
| Cordova has a different object under the same navigator property name. FirefoxOS doesn't provide type of the connection to the apps. According to [http://stackoverflow.com/questions/17494786/check-if-firefox-os-is-connected-to-wifi-for-privileged-apps Harald' answer on StackOverflow] "<code>metered</code> should be enough to tell if the user is on wifi".
| Cordova has a different object under the same navigator property name. FirefoxOS doesn't provide type of the connection to the apps. According to [http://stackoverflow.com/questions/17494786/check-if-firefox-os-is-connected-to-wifi-for-privileged-apps Harald' answer on StackOverflow] "<code>metered</code> should be enough to tell if the user is on wifi".
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_contacts_contacts.md.html#Contacts Contacts]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_contacts_contacts.md.html#Contacts Contacts]
| [[WebAPI/ContactsAPI]]
| [[WebAPI/ContactsAPI]]
| There are lacks in FxOS documentation of Contact fields (<code>impp</code>, <code>url</code>, <code>address</code>). Some fields are not exactly corresponding to each other. FxOS has an ability to save only one organization. Cordova has no info about (<code>anniversary</code>, <code>sex</code>, <code>genderIdentity</code>)
| There are lacks in FxOS documentation of Contact fields (<code>impp</code>, <code>url</code>, <code>address</code>). Some fields are not exactly corresponding to each other. FxOS has an ability to save only one organization. Cordova has no info about (<code>anniversary</code>, <code>sex</code>, <code>genderIdentity</code>)
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_device_device.md.html#Device Device]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_device_device.md.html#Device Device]
|
|
| As for the moment FxOS does not provide any info about device to not certified apps. Following properties of <code>device</code> object will not returned: <code>name</code>, <code>uuid</code>, <code>version</code>, <code>model</code>
| As for the moment FxOS does not provide any info about device to not certified apps. Following properties of <code>device</code> object will not returned: <code>name</code>, <code>uuid</code>, <code>version</code>, <code>model</code>
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_events_events.md.html#Events Events]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_events_events.md.html#Events Events]
|
|
| TBD (some of these will require a separate row in this table)
| TBD (some of these will require a separate row in this table)
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_file_file.md.html#File File]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_file_file.md.html#File File]
|
|
| TBD
| TBD
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_geolocation_geolocation.md.html#Geolocation Geolocation]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_geolocation_geolocation.md.html#Geolocation Geolocation]
| [https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation Using geolocation]
| [https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation Using geolocation]
| The only difference is providing a timestamp as Date object
| The only difference is providing a timestamp as Date object
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_globalization_globalization.md.html#Globalization Globalization]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_globalization_globalization.md.html#Globalization Globalization]
|
|
| TBD
| TBD
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser InAppBrowser]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_inappbrowser_inappbrowser.md.html#InAppBrowser InAppBrowser]
| [https://developer.mozilla.org/en-US/docs/WebAPI/Browser Browser]
| [https://developer.mozilla.org/en-US/docs/WebAPI/Browser Browser]
| The implementation is very different. Cordova uses <code>window.open</code> which is working in different way under FxOS. FxOS uses an <code>iframe</code> with <code>mozbrowser</code> attribute.
| The implementation is very different. Cordova uses <code>window.open</code> which is working in different way under FxOS. FxOS uses an <code>iframe</code> with <code>mozbrowser</code> attribute.
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_media_media.md.html#Media Media]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_media_media.md.html#Media Media]
|
|
| Playing and recording music files. "The current implementation does not adhere to a W3C specification for media capture, and is provided for convenience only. A future implementation will adhere to the latest W3C specification and may deprecate the current APIs".
| Playing and recording music files. "The current implementation does not adhere to a W3C specification for media capture, and is provided for convenience only. A future implementation will adhere to the latest W3C specification and may deprecate the current APIs".
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.alert Notification.alert]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.alert Notification.alert]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.alert window.alert]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.alert window.alert]
| There is a need for a new function which will be asynchronous and support changing <code>title</code> and <code>buttonName</code>  
| There is a need for a new function which will be asynchronous and support changing <code>title</code> and <code>buttonName</code>  
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.confirm Notification.confirm]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.confirm Notification.confirm]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.confirm window.confirm]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.confirm window.confirm]
| There is a need for a new function which will be asynchronous and support changing <code>title</code> and <code>buttonLabels</code>  
| There is a need for a new function which will be asynchronous and support changing <code>title</code> and <code>buttonLabels</code>  
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.prompt Notification.prompt]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.prompt Notification.prompt]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.prompt window.prompt]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.prompt window.prompt]
| There is a need for a new function which will be asynchronous and support changing <code>title</code> and <code>buttonLabels</code>  
| There is a need for a new function which will be asynchronous and support changing <code>title</code> and <code>buttonLabels</code>  
|
|
|-
|-
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.beep Notification.beep]
| [http://cordova.apache.org/docs/en/3.0.0/cordova_notification_notification.md.html#notification.beep Notification.beep]
|  
|  
| TBD
| TBD
|
|
|-
|-
| [http://cordova.apache.org/docs/en/2.7.0/cordova_notification_notification.md.html#notification.vibrate Notification.vibrate]
| [http://cordova.apache.org/docs/en/2.7.0/cordova_notification_notification.md.html#notification.vibrate Notification.vibrate]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.navigator.vibrate?redirectlocale=en-US&redirectslug=DOM%2Fwindow.navigator.vibrate Vibration]
| [https://developer.mozilla.org/en-US/docs/Web/API/window.navigator.vibrate?redirectlocale=en-US&redirectslug=DOM%2Fwindow.navigator.vibrate Vibration]
| None
| None
|
|
|-
|-
| [http://cordova.apache.org/docs/en/2.7.0/cordova_splashscreen_splashscreen.md.html#Splashscreen Splashscreen]
| [http://cordova.apache.org/docs/en/2.7.0/cordova_splashscreen_splashscreen.md.html#Splashscreen Splashscreen]
|
|
| TBD
| TBD
|
|
|-
|-
| [http://cordova.apache.org/docs/en/2.7.0/cordova_storage_storage.md.html#Storage Storage]
| [http://cordova.apache.org/docs/en/2.7.0/cordova_storage_storage.md.html#Storage Storage]
|
|
| TBD
| TBD
|
|
|-
|-
|}
|}

Revision as of 13:28, 27 September 2013

This page is to document the development of Cordova for FirefoxOS. It is edited quite often, co

General issues

Security Exception when iterating over window.navigator

Comparing APIs

Cordova FirefoxOS Differences Status (%) Developer
Accelerometer devicemotion, DeviceMotionEvent.acceleration Cordova provides getCurrentAcceleration and watchAcceleration. This is easy to simulate using DeviceMotionEvent. getCurrentAcceleration will simply call it once and clear the watcher afterwards. The only advantage will be the acceleratorOptions which contains frequency property. There is also a timestamp property returned to Cordova's callback.
Camera WebActivities, Pick image example FirefoxOS is providing access to pictures via WebActivities. Usage is fairly simple and an example is already working. However full support of Cordova API will be hard (or impossible) to implement. The problematic parts are specified in cameraOptions:
  • defining the source of the picture in code
  • forcing encode type
  • target size
  • camera direction
Capture WebActivities The main differences are in the object returned to the callbacks, some on-the-fly transition will be needed.
Compass deviceorientation FirefoxOS provides support as an event. Use absolute parameter to check if the device is able to provide the Earth coordinate frame
Connection navigator.connection Cordova has a different object under the same navigator property name. FirefoxOS doesn't provide type of the connection to the apps. According to Harald' answer on StackOverflow "metered should be enough to tell if the user is on wifi".
Contacts WebAPI/ContactsAPI There are lacks in FxOS documentation of Contact fields (impp, url, address). Some fields are not exactly corresponding to each other. FxOS has an ability to save only one organization. Cordova has no info about (anniversary, sex, genderIdentity)
Device As for the moment FxOS does not provide any info about device to not certified apps. Following properties of device object will not returned: name, uuid, version, model
Events TBD (some of these will require a separate row in this table)
File TBD
Geolocation Using geolocation The only difference is providing a timestamp as Date object
Globalization TBD
InAppBrowser Browser The implementation is very different. Cordova uses window.open which is working in different way under FxOS. FxOS uses an iframe with mozbrowser attribute.
Media Playing and recording music files. "The current implementation does not adhere to a W3C specification for media capture, and is provided for convenience only. A future implementation will adhere to the latest W3C specification and may deprecate the current APIs".
Notification.alert window.alert There is a need for a new function which will be asynchronous and support changing title and buttonName
Notification.confirm window.confirm There is a need for a new function which will be asynchronous and support changing title and buttonLabels
Notification.prompt window.prompt There is a need for a new function which will be asynchronous and support changing title and buttonLabels
Notification.beep TBD
Notification.vibrate Vibration None
Splashscreen TBD
Storage TBD