diff options
author | Anderson Vallejo <48649209+Vallejoanderson@users.noreply.github.com> | 2022-02-11 11:49:26 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-11 12:49:26 -0400 |
commit | 05e0e6d50d996472ed622726651fbd88250e97cb (patch) | |
tree | 9953a39b219d9954f9374a3f71f1312066a886db /files/es/web | |
parent | 0c5171d110092440445762d39dc7cd5f91c0dc4e (diff) | |
download | translated-content-05e0e6d50d996472ed622726651fbd88250e97cb.tar.gz translated-content-05e0e6d50d996472ed622726651fbd88250e97cb.tar.bz2 translated-content-05e0e6d50d996472ed622726651fbd88250e97cb.zip |
Content sync and updated to md | Notification.requestpermission [ES] (#4056)
* sync and updated to md
* fix typo
* Update files/es/web/api/notification/requestpermission/index.md
Co-authored-by: Carolyn Wu <87150472+cw118@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Juan Vásquez <juan@logicalbricks.com>
* Update index.md
* Update index.md
* Apply suggestions from code review
Co-authored-by: Alexander <alexander_belial999@hotmail.com>
Co-authored-by: Carolyn Wu <87150472+cw118@users.noreply.github.com>
Co-authored-by: Juan Vásquez <juan@logicalbricks.com>
Co-authored-by: Alexander <alexander_belial999@hotmail.com>
Diffstat (limited to 'files/es/web')
-rw-r--r-- | files/es/web/api/notification/requestpermission/index.html | 143 | ||||
-rw-r--r-- | files/es/web/api/notification/requestpermission/index.md | 100 |
2 files changed, 100 insertions, 143 deletions
diff --git a/files/es/web/api/notification/requestpermission/index.html b/files/es/web/api/notification/requestpermission/index.html deleted file mode 100644 index 6c4b8080b3..0000000000 --- a/files/es/web/api/notification/requestpermission/index.html +++ /dev/null @@ -1,143 +0,0 @@ ---- -title: Notification.requestPermission() -slug: Web/API/notification/requestPermission -translation_of: Web/API/Notification/requestPermission ---- -<p>{{APIRef("Web Notifications")}}</p> - -<p>El método <strong><code>requestPermission()</code></strong> de la interfaz {{domxref("Notification")}} realiza una petición de permiso al usuario para que en ese <a href="https://es.wikipedia.org/wiki/Dominio_de_Internet">dominio web</a> se puedan mostrar notificaciones. </p> - -<h2 id="Sintaxis">Sintaxis</h2> - -<p>La ultima especificación ha actualizado este método a una sintaxis basada en <code><a href="/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise">Promise</a></code>:</p> - -<pre class="brush: js">Notification.requestPermission().then(function(permission) { ... });</pre> - -<p>Anteriormente, la sintaxis se basaba en una simple retrollamada (callback); esta especificación ahora está obsoleta.</p> - -<pre class="brush: js">Notification.requestPermission(<em>callback</em>);</pre> - -<h3 id="Parámetros">Parámetros</h3> - -<dl> - <dt><code>callback</code> {{optional_inline}} {{deprecated_inline("gecko46")}}</dt> - <dd>Una retrollamada (callback) opcional que es ejecutado con el valor del permiso elegido por el usuario. Obsoleto y reemplazado por el valor de retorno de <code><a href="/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise">Promise</a></code>.</dd> -</dl> - -<h3 id="Retorno">Retorno</h3> - -<p>Devuleve un <code><a href="/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise">Promise</a></code> que se transforma a <code><a href="https://developer.mozilla.org/en-US/docs/Web/API/DOMString">DOMString</a></code> con el permiso escogido por el usuario. Los valores posibles para este son <code>granted</code>, <code>denied</code>, ó <code>default</code>.</p> - -<h2 id="Ejemplo">Ejemplo</h2> - -<p>El siguiente fragmento realiza la petición de permiso al usuario, después registra un resultado diferente dependiendo de la elección del usuario.</p> - -<pre class="brush: js">Notification.requestPermission(<span class="s1">function</span>(result) { - <span class="s1">if</span> (result === <span class="s2">'denied'</span>) { -<span class="s3"> console.log(</span>'Permission wasn\'t granted. Allow a retry.'<span class="s3">);</span> - <span class="s1">return</span>; - } else if (result === 'default') { - console.log('The permission request was dismissed.'); - return; - } - // Hacer algo con el permiso concedido. -});</pre> - -<h2 id="Especificaciones">Especificaciones</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificación</th> - <th scope="col">Estado</th> - <th scope="col">Comentario</th> - </tr> - <tr> - <td>{{SpecName('Web Notifications')}}</td> - <td>{{Spec2('Web Notifications')}}</td> - <td>Living standard</td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilidad_con_los_buscadores">Compatibilidad con los buscadores</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>5 {{ property_prefix("webkit") }} (ver notas)<br> - 22</td> - <td>4.0 {{ property_prefix("moz") }} (ver notas)<br> - 22</td> - <td>{{ CompatNo() }}</td> - <td>25</td> - <td>6 (ver notas)</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Android</th> - <th>Android Webview</th> - <th>Firefox Mobile (Gecko)</th> - <th>Firefox OS</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - <th>Chrome for Android</th> - </tr> - <tr> - <td>Soporte básico</td> - <td>{{ CompatUnknown() }}</td> - <td> - <p>{{CompatVersionUnknown}}</p> - </td> - <td>4.0 {{ property_prefix("moz") }} (ver notas)<br> - 22</td> - <td>1.0.1 {{ property_prefix("moz") }} (ver notas)<br> - 1.2</td> - <td>{{ CompatNo() }}</td> - <td>{{ CompatUnknown() }}</td> - <td>{{ CompatNo() }}</td> - <td> - <p>{{CompatVersionUnknown}}</p> - </td> - </tr> - </tbody> -</table> -</div> - -<h3 id="Notas_de_Firefox_OS">Notas de Firefox OS</h3> - -<p>{{Page("/en-US/docs/Web/API/Notifications_API", "Firefox OS notes")}}</p> - -<h3 id="Notas_de_Chrome">Notas de Chrome</h3> - -<p>{{Page("/en-US/docs/Web/API/Notifications_API", "Chrome notes")}}</p> - -<h3 id="Notas_de_Safari">Notas de Safari</h3> - -<p>{{Page("/en-US/docs/Web/API/Notifications_API", "Safari notes")}}</p> - -<h2 id="Ver_también">Ver también</h2> - -<ul> - <li><a href="/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API">Usando la API de notificaciones</a></li> -</ul> diff --git a/files/es/web/api/notification/requestpermission/index.md b/files/es/web/api/notification/requestpermission/index.md new file mode 100644 index 0000000000..33954b8843 --- /dev/null +++ b/files/es/web/api/notification/requestpermission/index.md @@ -0,0 +1,100 @@ +--- +title: Notification.requestPermission() +slug: Web/API/Notification/requestPermission +tags: + - API + - Method + - Notification + - Notifications + - Notifications API + - Reference +translation_of: Web/API/Notification/requestPermission +browser-compat: api.Notification.requestPermission +--- +{{APIRef("Web Notifications")}}{{securecontext_header}} + +> **Nota:** Safari aún usa la sintaxis callback para obtener el permiso. Lee [Usando la API de Notificaciones](/es/docs/Web/API/Notifications_API/Using_the_Notifications_API) para un buen ejemplo de como detectar esto y ejecutar el código de forma apropiada. + +El método **`requestPermission`** de la interfaz {{domxref("Notification")}} solicita un permiso del usuario al origen actual para mostrar notificaciones. + +## Sintaxis + +La ultima especificación ha actualizado este método a una sintaxis de tipo promesa que funciona así: + +```js +Notification.requestPermission().then(function(permission) { /* ... */ }); +``` + +Anteriormente, la sintaxis se basaba en un simple callback; esta versión ahora está obsoleta: + +```js +Notification.requestPermission(callback); +``` + +### Parámetros + +- `callback` {{optional_inline}} {{deprecated_inline}} + - : Una callback opcional que es ejecutado con el valor del permiso. Obsoleto y reemplazado por el valor de retorno de la promesa. + +### Valor de retorno + +Una {{jsxref("Promise")}} que se convierte en una {{domxref("DOMString")}} con el permiso elegido por el usuario. Los valores posibles para este son: + +- `granted` +- `denied` +- `default` + +## Ejemplos + +Asume este HTML básico: + +```html +<button onclick="notifyMe()">¡Notifícame!</button> +``` + +Es posible enviar una notificación de la siguiente forma: aquí presentamos un conjunto de código bastante detallado y completo que podrías usar si quisieras primero comprobar si las notificaciones son soportadas, luego comprobar si el permiso ha sido concedido para el origen actual para enviar notificaciones y luego solicitar permiso de ser requerido, antes de enviar una notificación. + +```js +function notifyMe() { + // Comprobamos si el navegador soporta las notificaciones + if (!("Notification" in window)) { + alert("Este navegador no es compatible con las notificaciones de escritorio"); + } + + // Comprobamos si los permisos han sido concedidos anteriormente + else if (Notification.permission === "granted") { + // Si es correcto, lanzamos una notificación + var notification = new Notification("¡Hola!"); + } + + // Si no, pedimos permiso para la notificación + else if (Notification.permission !== "denied") { + Notification.requestPermission().then(function (permission) { + // Si el usuario nos lo concede, creamos la notificación + if (permission === "granted") { + var notification = new Notification("¡Hola!"); + } + }); + } + + // Por último, si el usuario ha denegado el permiso, + // y quiere ser respetuoso, no hay necesidad de molestarlo. +} +``` + +Ya no mostramos ejemplos corriendo en tiempo real en esta página, ya que Chrome y Firefox ya no conceden permisos de notificación para ser solicitados desde el origen {{htmlelement("iframe")}}, para seguir con otros navegadores. Para ver un ejemplo en acción, revisa nuestro [Ejemplo de lista de Todos](https://github.com/mdn/to-do-notifications/tree/gh-pages) (véase también [la app corriendo en vivo](https://mdn.github.io/to-do-notifications/).) + +> **Nota:** En el ejemplo de arriba generamos notificaciones en respuesta a una acción del usuario (hacer click en un botón). Esta no es la única mejor práctica — no deberias molestar a los usuarios con notificaciones que ellos no aceptaron — pero pronto los navegadores explicitamente deshabilitaran las notificaciones que no son ejecutadas en respuesta a una acción del usuario. Firefox ya está haciendo esto desde la versión 72, por ejemplo. + +## Especificaciones + +{{Specifications}} + +## Compatibilidad con navegadores + +{{Compat}} + +## Véase también + +- [Usando la API de Notificaciones](/es/docs/Web/API/Notifications_API/Using_the_Notifications_API) + |