pub plugin open url redirect dart

url - plugin - ¿Cómo redirigir y recargar el camino correcto en Dart?



share url flutter (1)

Hay algunas maneras diferentes de manejar los cambios de URI y cada uno tiene su propio propósito.

  1. Cuando quieras enviar al usuario a otro URI:

    • window.location.assign(''http://google.com'')

      Éste envía al usuario a Google, manteniendo el historial de navegación (el historial del botón de retroceso). Esto es como hacer clic en un enlace.

    • window.location.href = ''http://google.com''

      Lo mismo que arriba, solo otra forma de hacerlo. href es un setter, y hace que la asignación suceda. Siento que la versión anterior es más limpia.

    • window.location.replace(''http://google.com'');

      Sin embargo, el método replace() en el objeto LocalLocation no solo envía al usuario a Google, sino que tampoco coloca la página de origen en el historial de la sesión, lo que significa que el usuario no sufrirá la interminable pesadilla del botón de retroceso.

      Esto es esencialmente lo mismo que un redireccionamiento HTTP. La historia se salta.

  2. Cuando quieras hacer una recarga / actualización.

    • window.location.assign(window.location.href)

      Vuelve a cargar la página actual a la misma URI exacta. Esto no contiene datos POST . Algunos de los recursos (como imágenes, etc.) pueden volver a cargarse desde el caché, por lo que podría no ser una recarga completa.

      Esto es esencialmente lo mismo que presionar F5 y omitir el envío de datos POST .

    • window.location.href = window.location.href

      De nuevo, lo mismo que el anterior.

    • window.location.reload()

      Esta forma de recargar la página hace que también se envíen los datos POST . La "versión de JavaScript" de window.location.reload() también admite un parámetro que especifica si se debe omitir la caché o no. Sin embargo, la implementación actual de Dart no admite ese parámetro, y de manera predeterminada recupera los recursos del caché.

      Este parámetro de caché puede agregarse a Dart en algún momento, pero aún no está allí. Cuando llegue, lo más probable es que simplemente pase el valor true como primer parámetro y luego sería como Ctrl + Shift + R.

Resumen

  • Quiero simular un clic en la etiqueta <a> .

Utilice window.location.assign(url) .

  • Quiero redirigir a un nuevo sitio web como la redirección de HTTP y omitir el historial del botón de retroceso.

Utilice window.location.replace(url) .

  • Quiero hacer un F5 con datos POST .

Utilice window.location.reload() .

  • Quiero hacer un F5 sin datos POST .

Utilice window.location.assign(window.location.href) .

  • Quiero hacer un Ctrl + Shift + F5 .

No disponible, tal vez en el futuro. Probablemente sería window.location.reload(true) .

¿Cuáles son las formas preferidas de hacer una redirección y una recarga en Dart?

¿Simplemente usamos: window.location.href = window.location.href ?