aboutsummaryrefslogtreecommitdiff
path: root/files/es/webapi
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 21:46:22 -0500
commita065e04d529da1d847b5062a12c46d916408bf32 (patch)
treefe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/es/webapi
parent218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff)
downloadtranslated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2
translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/es/webapi')
-rw-r--r--files/es/webapi/alarm/index.html180
-rw-r--r--files/es/webapi/cámara/index.html20
-rw-r--r--files/es/webapi/device_storage/index.html226
3 files changed, 0 insertions, 426 deletions
diff --git a/files/es/webapi/alarm/index.html b/files/es/webapi/alarm/index.html
deleted file mode 100644
index 32add5da86..0000000000
--- a/files/es/webapi/alarm/index.html
+++ /dev/null
@@ -1,180 +0,0 @@
----
-title: Api de Alarma
-slug: WebAPI/Alarm
-translation_of: Archive/B2G_OS/API/Alarm_API
----
-<p>{{ SeeCompatTable() }}</p>
-<h2 id="Resumen">Resumen</h2>
-<p>La <span class="external">API</span> de Alarma provee acceso a la configuración de alarmas del dispositivo, con la cual se puede programar una notificación o una aplicación para que se inicie en un momento específico. Por ejemplo, algunas aplicaciones, como el despertador, calendario o actualizaciones automáticas necesitan utilizar la API de alarma para activar comportamientos particulares del dispositivo en los tiempos especificados.</p>
-<p>Por si mismo, la API de alarmas solo permite programar alarmas. Una alarma es enviada a las aplicaciones a través de la API de mensaje del sistema, entonces las aplicaciones que desean reaccionar a las alarmas tienen que registrarse en los mensajes de alarma.</p>
-<p>Las alarmas son establecidas usando el objeto {{domxref("window.navigator.mozAlarms")}}, el cual es una instancia de {{domxref("MozAlarmsManager")}}.</p>
-<h2 id="example" name="example">Programar alarmas</h2>
-<p>Lo primero ha hacer cuando se utiliza alarmas es programar alarmas. Existen dos tipos de alarmas basadas respecto a la zona horaria. En ambos casos se realiza utilizando el método {{domxref("MozAlarmsManager.add")}} .</p>
-<div class="note">
- <p><strong>Nota:</strong> Si una alarmar no es dirigida a una aplicación específica, el sistema podría enviar todas las alarmas a todas las aplicaciones que escuchan por alarmas.</p>
-</div>
-<h3 id="Alarmas_ignorando_zonas_horarias">Alarmas ignorando zonas horarias</h3>
-<p>Este tipo de alarmas es enviado basado en la hora local del dispositivo. Si el usuario del dispositivo cambia la zona horaria, la alarma será enviada basada en la nueva zona horaria. Por ejemplo, si un usuario se encuentra en Paris y configura una alarma que debería ser enviada a las 12 PM CET (hora de europa central) y el usuario viaja a San Francisco, la alarma será enviada a las 12 PM PDT (Hora del Pacífico).</p>
-<pre class="brush: js">// Esta es la fecha a programar la alarma
-var myDate = new Date("May 15, 2012 16:20:00");
-
-// Esta es la información a pasar a la alarma
-var data = {
- foo: "bar"
-}
-
-// La cadena "ignoreTimezone" es lo que hace a la alarma ignorar esto
-var request = navigator.mozAlarms.add(myDate, "ignoreTimezone", data);
-
-request.onsuccess = function () {
- console.log("La alarma ha sido programada");
-};
-
-request.onerror = function () {
- console.log("Ha ocurrido un error: " + this.error.name);
-};
-</pre>
-<h3 id="Alarmas_respetando_zonas_horarias">Alarmas respetando zonas horarias</h3>
-<p>Este tipo de alarmas es enviado basado en la hora en la zona horaria que se definio cuando la alarma fue programada. Si por alguna razón, el usuario del dispositivo cambia su zona horaria, la alarma será enviada basada en la zona horaria original. Por ejemplo, si un usuario se encuentra en Paris y programa una alarma que debería ser enviada a las 12 PM CET (Hora de europa central) y si el usuario viaja a San Francisco, la alarma será enviada a las 3 AM PDT (Hora del Pacífico).</p>
-<pre class="brush: js">// Esta es la fecha a programar la alarma
-var myDate = new Date("May 15, 2012 16:20:00");
-
-// Esta es la información a pasar a la alarma
-var data = {
- foo: "bar"
-}
-
-// La cadena "honorTimezone" es lo que hace a la alarma respetar la zona horaria
-var request = navigator.mozAlarms.add(myDate, "honorTimezone", data);
-
-request.onsuccess = function () {
- console.log("La alarma ha sido programada");
-};
-
-request.onerror = function () {
- console.log("Ha ocurrido un error: " + this.error.name);
-};
-</pre>
-<h2 id="Administrando_alarmas">Administrando alarmas</h2>
-<p>Una vez que uan alarma es programada, es posible administrarla.</p>
-<p>El método {{domxref("MozAlarmsManager.getAll")}} devolverá la lista completa de alarmas actualmente programadas por la aplicación. Esta lista es un <code><a href="/es/docs/Referencia_de_JavaScript_1.5/Objetos_globales/Array" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></code> de objetos {{Anch("mozAlarm")}} .</p>
-<h3 id="mozAlarm">mozAlarm</h3>
-<p>{{page("/en-US/docs/Web/API/MozAlarmsManager.getAll","mozAlarm")}}</p>
-<pre class="brush: js">var request = navigator.mozAlarms.getAll();
-
-request.onsuccess = function () {
- this.result.forEach(function (alarm) {
- console.log('Id: ' + alarm.id);
- console.log('date: ' + alarm.date);
- console.log('respectTimezone: ' + alarm.respectTimezone);
- console.log('data: ' + JSON.stringify(alarm.data));
- });
-};
-
-request.onerror = function () {
- console.log("An error occurred: " + this.error.name);
-};
-</pre>
-<p>El método {{domxref("MozAlarmsManager.remove")}} se utiliza para desprogramar una alarma existente.</p>
-<pre class="brush: js">var alarmId;
-
-// Set an alarm and store it's id
-var request = navigator.mozAlarms.add(new Date("May 15, 2012 16:20:00"), "honorTimezone");
-
-request.onsuccess = function () {
- alarmId = this.result.id;
-}
-
-// ...
-
-// Later on, removing the alarm if it exists
-if (alarmId) {
- navigator.mozAlarms.remove(alarmId);
-}
-</pre>
-<h2 id="Manejando_alarmas">Manejando alarmas</h2>
-<p>Cualquier aplicación puede reaccionar cuando una alarma es programada por el sistema. Con el fin de ser capaz de manejar alarmas, una aplicación debe registrarse como manejador de alarmas. Esto se logra a través del API de mensajes del sistema en dos pasos:</p>
-<p>Primero, las aplicaciones deberán incluir <code>alarm</code> en la propiedad de mensajes en el manifiesto de su aplicación con la URL del documento que registra la función de retorno (callback) ha ser usada cuando la alarma sea enviada.</p>
-<pre class="brush: js">"messages": [
- { "alarm": "/index.html" }
-]</pre>
-<p>Segundo,  la aplicación debe enlazar la función de retorno (callback) con el mensaje de <code>alarm</code>.</p>
-<p>Esto se logra usando el método {{domxref("window.navigator.mozSetMessageHandler","navigator.mozSetMessageHandler")}} . Esta función recibirá el objeto {{Anch("mozAlarm")}} conteniendo la información agregada a la alarma.</p>
-<pre class="brush: js">navigator.mozSetMessageHandler("alarm", function (mozAlarm) {
- alert("alarm fired: " + JSON.stringify(mozAlarm.data));
-});
-</pre>
-<p>Si una aplicación desea saber si existe una alarma pendiente a nivel del sistema, es posible utilizar el método {{domxref("window.navigator.mozHasPendingMessage","navigator.mozHasPendingMessage")}} con el valor <code>alarm</code>.</p>
-<pre class="brush: js">navigator.mozHasPendingMessage("alarm");
-</pre>
-<h2 id="Especificaciones">Especificaciones</h2>
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Especificación</th>
- <th scope="col">Estado</th>
- <th scope="col">Comentario</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('Alarm API')}}</td>
- <td>{{Spec2('Alarm API')}}</td>
- <td>Especificación inicial.</td>
- </tr>
- </tbody>
-</table>
-<h2 id="Compatibilidad_de_navegadores">Compatibilidad de navegadores</h2>
-<p>{{ CompatibilityTable() }}</p>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{ CompatUnknown()}}</td>
- <td>{{CompatGeckoDesktop("16")}} {{ property_prefix("moz") }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Feature</th>
- <th>Android</th>
- <th>Chrome for Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Basic support</td>
- <td>{{ CompatUnknown() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{CompatGeckoMobile("10")}} {{ property_prefix("moz") }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<h2 id="Ver_también">Ver también</h2>
-<ul>
- <li>{{domxref("window.navigator.mozAlarms","navigator.mozAlarms")}}</li>
- <li>{{domxref("MozAlarmsManager")}}</li>
- <li>{{domxref("window.navigator.mozSetMessageHandler")}}</li>
-</ul>
diff --git a/files/es/webapi/cámara/index.html b/files/es/webapi/cámara/index.html
deleted file mode 100644
index 2cd89a2d8b..0000000000
--- a/files/es/webapi/cámara/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: API de la Cámara
-slug: WebAPI/Cámara
-translation_of: Archive/B2G_OS/API/Camera_API
----
-<p>{{ ApiRef() }}</p>
-<p>{{ non-standard_header() }}</p>
-<p>{{ B2GOnlyHeader2('certified') }}</p>
-<p><span id="result_box" lang="es">The <strong>Camera API</strong> allows applications to manage the camera of the device. It allows them to take photographs, record videos, and get information like the focus, the zoom, the white balance, the flash, … It is a priviledged API and can only be used by certified applications.</span></p>
-<div class="note">
- <p><strong>Note:</strong> Except if you are implementing a replacement for the default <em>Camera</em> application, you shouldn't use this API. Instead, if you want to use the camera in your device, you should use the <a href="/en-US/docs/WebAPI/Web_Activities" title="/en-US/docs/Web/API/Web_Activities">Web Activities API</a>.</p>
-</div>
-<h2 id="See_also">See also</h2>
-<ul>
- <li>{{domxref("window.navigator.mozCameras", "navigator.mozCameras")}}</li>
- <li>{{domxref("CameraManager")}}</li>
- <li>{{domxref("CameraControl")}}</li>
- <li>{{domxref("CameraCapabilities")}}</li>
-</ul>
-<p> </p>
diff --git a/files/es/webapi/device_storage/index.html b/files/es/webapi/device_storage/index.html
deleted file mode 100644
index eb9b4d5fb7..0000000000
--- a/files/es/webapi/device_storage/index.html
+++ /dev/null
@@ -1,226 +0,0 @@
----
-title: Device Storage API
-slug: WebAPI/Device_Storage
-translation_of: Archive/B2G_OS/API/Device_Storage_API
----
-<p>{{ non-standard_header() }}</p>
-<p>{{ B2GOnlyHeader2('privileged') }}</p>
-<h2 id="Resumen">Resumen</h2>
-<p>La API de Device Storage es usada para acceder al sistema de archivos dentro de una aplicación Web. Acceder al sistema de archivos puede ser muy susceptible, por ese motivo, esta API está disponible sólo para aplicaciones con privilegios.</p>
-<div class="note">
- <p><strong>Nota:</strong> El acceso a un dispositivo de almacenamiento es lento debido a la limitación en el nivel físico. En muchos casos puede resultar más rápido usar una base de datos <a href="/en-US/docs/IndexedDB" title="/en-US/docs/IndexedDB">IndexedDB</a> para almacenar archivos en lugar del dispositivo de almacenamiento físico.</p>
-</div>
-<h2 id="Acceso_a_un_almacenamiento">Acceso a un almacenamiento</h2>
-<h3 id="Punto_de_entrada">Punto de entrada</h3>
-<p>Es posible acceder a un área de almacenamiento usando el método {{domxref("window.navigator.getDeviceStorage()","navigator.getDeviceStorage()")}}. Acepta un parámetro de cadena que representa el nombre del alamacenamiento al cual se quiere tener acceso. El método devuelve un objeto {{domxref("DeviceStorage")}} que es usado para acceder al área de almacenamiento relacionada.</p>
-<p>Firefox OS proporciona el siguiente nombre de almacenamiento:</p>
-<ul>
- <li><code>apps</code>: Esta área de almacenamiento es usada para almacenar los datos de usuario necesarios para las aplicaciones. Como se trata de datos confidenciales, acceder a esta área de almacenamiento requiere algunos privilegios extra y está disponible sólamente para aplicaciones certificadas.</li>
- <li><code>music</code>: Esta es el área de almacenamiento donde son almacenados música y sonidos.</li>
- <li><code>pictures</code>: Esta es el área de almacenamiento donde se almacenan las fotos.</li>
- <li><code>sdcard</code>: Esta es el área de almacenamiento que brinda acceso al SDCard del dispositivo.</li>
- <li><code>videos</code>: Esta es el área de almacenamiento donde son almacenados los videos.</li>
-</ul>
-<pre class="brush: js">var pics = navigator.getDeviceStorage('pictures');</pre>
-<p>Para ser capaz de usar cada una de las áreas de almacenamiento, la aplicación debe declararlas en su archivo de manifiesto. Por ejemplo, si la aplicación quiere acceder al área de almacenamiento de la <code>sdcard</code>, debe tener el permiso "<code>device-storage:sdcard</code>" en su manifiesto.</p>
-<pre class="brush: js">"permissions": {
- "device-storage:videos":{ "access": "readonly" },
- "device-storage:pictures":{ "access": "readwrite" }
-}</pre>
-<h2 id="El_uso_de_un_almacenamiento">El uso de un almacenamiento</h2>
-<p>Una vez que una aplicación tenga acceso de un área de almacenamiento, es posible agregar, obtener y eliminar archivos dentro del área.</p>
-<h3 id="Agregar_un_archivo">Agregar un archivo</h3>
-<p>Se puede agregar una archivo utilizando el método {{domxref("DeviceStorage.addNamed()","addNamed")}} o {{domxref("DeviceStorage.add()","add")}}. La primera permite establecer un nombre explícito para guardar un archivo mientras que la segunda crea un nombre automáticamente cuando se guarda el archivo. Ambos nombres son asíncronos y devuelven un objeto {{domxref("DOMRequest")}} para manejar el <code>success</code> o <code>error</code> de la operación. Esto debe considerar importante que tanto agregar, escribir y leer archivos en un soporte físico es un proceso lento.</p>
-<p>Esos dos métodos esperan un {{domxref("Blob")}} como su primer parámetro. Este objeto será convertido en un archivo y almacenado. Al crear un objeto {{domxref("Blob")}}, es obligatorio darle un tipo. Este tipo, que es un mime type, es importante porque algunas áreas de almacenamiento tienen restricciones basadas en el tipo:</p>
-<ul>
- <li><code>music</code> sólo acepta el {{domxref("Blob")}} con un mime type válido de audio</li>
- <li><code>pictures</code> sólo acepta el {{domxref("Blob")}} con un mime type válido de imagen</li>
- <li><code>videos</code> sólo acepta el {{domxref("Blob")}} con un mime type válido de video</li>
-</ul>
-<pre class="brush: js">var sdcard = navigator.getDeviceStorage("sdcard");
-var file = new Blob(["Este es un archivo de texto."], {type: "text/plain"});
-
-var request = sdcard.addNamed(file, "mi-archivo.txt");
-
-request.onsuccess = function () {
- var name = this.result.name;
- console.log('El archivo "' + name + '" se escribió correctamente en el área de almacenamiento sdcard');
-}
-
-// Un error suele producirse si un archivo con el mismo nombre ya existe
-request.onerror = function () {
- console.warn('No se puede escribir el archivo: ' + this.error);
-}
-</pre>
-<div class="note">
- <p><strong>Nota:</strong> El repositorio en un área de almacenamiento está implícito. No es posible crear explícitamente un repositorio vacío. Si quiere usar una estructura de repositorio tiene que hacerlo parte del nombre del archivo a almacenar. Así que si quiere almacenar el archivo <code>bar</code> dentro del repositorio <code>foo</code>, tiene que usar el método {{domxref("DeviceStorage.addNamed()","addNamed")}} con el nombre completo de la ruta del archivo <code>addNamed(<em>blob</em>, "foo/bar")</code>. Esto también se aplica cuando quiere recuperar un archivo con su nombre (véase más adelante).</p>
- <p>Como el archivo es agregado en un área de almacenamiento restringido por razones de seguridad, un nombre de ruta de archivo no puede empezar con "<code>/</code>" ni "<code>../</code>" (y "<code>./</code>" no tiene sentido).</p>
-</div>
-<h3 id="Obtener_un_archivo">Obtener un archivo</h3>
-<p>Se puede recuperar un archivo de dos maneras: usando su nombre o iterando toda la lista de archivos.</p>
-<p>La manera más fácil es recuperar un archivo por su nombre usando los métodos {{domxref("DeviceStorage.get()","get")}} y {{domxref("DeviceStorage.getEditable","getEditable")}}. La primera proporciona un objeto {{domxref("File")}} (que actúa como un archivo de sólo lectura) mientras que la segunda proporciona un objeto {{domxref("FileHandle")}} (que permite actualizar el archivo subyacente). Ambos métodos son asíncronos y devuelven un objeto {{domxref("DOMRequest")}} para manejar el <code>success</code> o <code>error</code> de la operación.</p>
-<pre class="brush: js">var sdcard = navigator.getDeviceStorage('sdcard');
-
-var request = sdcard.get("mi-archivo.txt");
-
-request.onsuccess = function () {
- var file = this.result;
- console.log("Obtenido el archivo: " + file.name);
-}
-
-request.onerror = function () {
- console.warn("No se puede obtener el archivo: " + this.error);
-}
-</pre>
-<p>La otra forma de recuperar archivos es explorar el contenido del área de almacenamiento. Esto es posible usando los métodos {{domxref("DeviceStorage.enumerate()","enumerate")}} y {{domxref("DeviceStorage.enumerateEditable()","enumerateEditable")}}. El primero proporciona objetos {{domxref("File")}} mientras que el segundo proporciona objetos {{domxref("FileHandle")}}. Ambos métodos son asíncronos y devuelven un objeto {{domxref("DOMCursor")}} para recorrer a lo largo de la lista de archivos. Un {{domxref("DOMCursor")}} es nada menos que un objeto {{domxref("DOMRequest")}} con potencia extra para recorrer a lo largo de la lista de cosas (archivos en ese caso) en forma asíncrona.</p>
-<pre class="brush: js">var pics = navigator.getDeviceStorage('pictures');
-
-// Exploremos todas las imágenes disponibles
-var cursor = pics.enumerate();
-
-cursor.onsuccess = function () {
- var file = this.result;
- console.log("Archivo encontrado: " + file.name);
-
- // Una vez que encontremos el archivo verifiquemos si hay otros resultados
- if (!this.done) {
- // Entonces nos movemos al siguiente resultado, que llama al cursor
- // success con el siguiente archivo como resultado.
- this.continue();
- }
-}
-
-cursor.onerror = function () {
- console.warn("Archivo no encontrado: " + this.error);
-}
-</pre>
-<p>Es posible limitar el número de resultados pasando dos parámetros opcionales a los m´todos {{domxref("DeviceStorage.enumerate()","enumerate")}} y {{domxref("DeviceStorage.enumerateEditable()","enumerateEditable")}}.</p>
-<p>El primer parámetro puede ser una cadena que representa una subcarpeta para buscar dentro.</p>
-<p>El segundo parámetro puede ser un objeto con una propiedad <code>since</code>, que permite limitar la búsqueda a un determinado periodo de tiempo.</p>
-<pre class="brush: js">var pics = navigator.getDeviceStorage('pictures');
-
-// Recuperamos fotos de la semana pasada
-var param = {
- since: new Date((+new Date()) - 7*24*60*60*1000)
-}
-
-var cursor = pics.enumerate(param);
-
-cursor.onsuccess = function () {
- var file = this.result;
- console.log("Foto tomada en: " + file.<code class="language-js">lastModifiedDate</code>);
-
- if (!this.done) {
- this.continue();
- }
-}
-</pre>
-<h3 id="Eliminar_un_archivo">Eliminar un archivo</h3>
-<p>Un archivo se puede eliminar del área de almacenamiento usando simplemente el método {{domxref("DeviceStorage.delete()","delete")}}. Este método sólo necesita el nombre del archivo a eliminar. Como todos los demás métodos de la interfaz {{domxref("DeviceStorage")}}, este también es asíncrono y devuelve un objeto {{domxref("DOMRequest")}} para manejar el <code>success</code> o <code>error</code> de la operación.</p>
-<pre class="brush: js">var sdcard = navigator.getDeviceStorage('sdcard');
-
-var request = sdcard.delete("mi-archivo.txt");
-
-request.onsuccess = function () {
- console.log("Archivo eliminado");
-}
-
-request.onerror = function () {
- console.log("No se puede eliminar el archivo: " + this.error);
-}
-</pre>
-<h2 id="Información_de_almacenamiento">Información de almacenamiento</h2>
-<p>Además de acceder a los archivos, un área de almacenamiento proporciona algunos métodos para obtener fácilmente información importante.</p>
-<h3 id="Espacio_disponible">Espacio disponible</h3>
-<p>Una de las cosas más importantes a saber cuando se almacenan archivos en un dispositivo es la cantidad de espacio disponible. La interfaz {{domxref("DeviceStorage")}} proporciona tres funciones útiles dedicadas al espacio:</p>
-<ul>
- <li>{{domxref("DeviceStorage.freeSpace()","freeSpace()")}} para obtener la cantidad de espacio libre disponible para almacenar nuevos archivos;</li>
- <li>{{domxref("DeviceStorage.freeSpace()","usedSpace()")}} para obtener la cantidad de espacio utilizado para almacenar archivos;</li>
- <li>{{domxref("DeviceStorage.available()","available()")}} para obtener la cantidad total de espacio dedicado al área de almacenamiento.</li>
-</ul>
-<p>Como esos métodos son asíncronos, devuelven un objeto {{domxref("DOMRequest")}} para manejar los success o error de la operación.</p>
-<pre class="brush: js">var videos = navigator.getDeviceStorage('videos');
-
-var request = videos.usedSpace();
-
-request.onsuccess = function () {
- // El resultado es expresado en bytes, permite convertirlo en megabytes
- var size = this.result / 1000000;
-
- console.log("Los videos en tu dispositivo ocupan un total de " + size.toFixed(2) + "Mb de espacio.");
-}
-
-request.onerror = function () {
- console.warn("No se puede obtener el espacio utilizado por videos: " + this.error);
-}
-</pre>
-<h3 id="Escuchar_los_cambios">Escuchar los cambios</h3>
-<p>Como muchas aplicaciones pueden usar un mismo área de almacenamiento al mismo tiempo, a veces es útil para una aplicación ser consciente de un cambio en ese área de almacenamiento. También es útil para una aplicación que quiere realizar la acción asíncrona sin la retransmisión de todos los objetos {{domxref("DOMRequest")}} que devuelven por cada método de la interfaz {{domxref("DeviceStorage")}}.</p>
-<p>Para ese fin, un evento {{event("change")}} se activa cada vez que se crea, modifica o elimina un archivo. Este evento se puede capturar usando la propiedad {{domxref("DeviceStorage.onchange","onchange")}} o el método {{domxref("EventTarget.addEventListener()","addEventListener()")}}. El controlador de eventos recibe un objeto {{domxref("DeviceStorageChangeEvent")}} que es un objeto {{domxref("Event")}} regular con dos propiedades adicionales:</p>
-<ul>
- <li>{{domxref("DeviceStorageChangeEvent.reason")}} que da la razón del cambio (<code>created</code>, <code>modified</code> o <code>deleted</code>)</li>
- <li>{{domxref("DeviceStorageChangeEvent.path")}} que brinda la ruta completa del archivo afectado por el cambio.</li>
-</ul>
-<pre class="brush: js">var sdcard = navigator.getDeviceStorage('sdcard');
-
-sdcard.onchange = function (change) {
- var reason = change.reason;
- var path = change.path;
-
- console.log('El archivo "' + path + '" ha sido ' + reason);
-}
-</pre>
-<h2 id="Especificación">Especificación</h2>
-<p>No es parte de ninguna especificación.</p>
-<h2 id="Compatibilidad_del_navegador">Compatibilidad del navegador</h2>
-<p>{{ CompatibilityTable() }}</p>
-<div id="compat-desktop">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Característica</th>
- <th>Chrome</th>
- <th>Firefox (Gecko)</th>
- <th>Internet Explorer</th>
- <th>Opera</th>
- <th>Safari</th>
- </tr>
- <tr>
- <td>Soporte básico</td>
- <td>{{ CompatUnknown() }}</td>
- <td>{{ CompatUnknown() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<div id="compat-mobile">
- <table class="compat-table">
- <tbody>
- <tr>
- <th>Característica</th>
- <th>Android</th>
- <th>Firefox Mobile (Gecko)</th>
- <th>IE Mobile</th>
- <th>Opera Mobile</th>
- <th>Safari Mobile</th>
- </tr>
- <tr>
- <td>Soporte básico</td>
- <td>{{ CompatUnknown() }}</td>
- <td>{{ CompatUnknown() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- <td>{{ CompatNo() }}</td>
- </tr>
- </tbody>
- </table>
-</div>
-<h2 id="Véase_también">Véase también</h2>
-<ul>
- <li>{{domxref("window.navigator.getDeviceStorage()","navigator.getDeviceStorage()")}}</li>
- <li>{{domxref("DeviceStorage")}}</li>
- <li>{{domxref("DeviceStorageChangeEvent")}}</li>
-</ul>