Abrir URLs externas con Ionic Framework

Abrir URLs externas con Ionic Framework puede parecer sencillo pero en realidad supone un verdadero problema ya que al ser una aplicación híbrida se ejecuta sobre un navegador interno, por lo que al abrir cualquier URL esta se abrirá dentro de ese navegador que usa Cordova.Este problema puede solucionarse con el plugin Cordova “InAppBrowser“, que se encargará de lanzar el navegador por defecto del dispositivo con la URL que le indiquemos.

Para instalarlo simplemente ejecutamos este comando sobre la raíz del proyecto:

Ahora simplemente tenemos que usar el siguiente formato para abrir las URLs, se puede usar tanto desde Javascript como desde las vistas:

Desde las vistas simplemente usamos el mismo formato dentro del atributo “onclick”:

Usar _system resulta ser la mejor opción ya que si abrimos una URL por ejemplo de Google+ o Twitter, esta se abrirá en la aplicación correspondiente si está instalada.

  • Guillermo Rodriguez

    Hola, me estoy iniciando en Ionic y he encontrado tu artículo, me ha enseñado mucho, solo que me queda una duda, y quería pedir tu ayuda…..Tengo un link de esta forma (dentro de un repeat de personas): {{persona.sitio}}, y cuando intento abrir ese sitio (el contenido que trae es correcto), abre una ventana en blanco , me da el mensaje:

    MENSAJE DE ERROR: Cannot GET /www/%7B%7Bpersona.sitio%7D%7D
    ————————————————————————————

    es decir, no me sustituye el valor. Que forma tengo de hacerlo ? Muchas gracias !

    • josmantek

      Hola Guillermo, puedes probar a cambiar el onclick por un ng-click, sería algo así:

      ng-click=”abrirEnlace(persona.sitio)”

      Y en el controlador:

      $scope.abrirEnlace = function(enlace) {
      window.open(enlace,’_system’,’location=yes’);
      };

      • Guillermo Rodriguez

        Funciona ! Muchas gracias !

  • Mauricio rosales

    Hola, intento poner el enlace desde la base de datos de esta forma:

    Sin embargo hace que no me corra. ¿como podría colocar ese enlace que traigo desde la base de datos?

    • josmantek

      Hola Mauricio,

      Mira la respuesta del mensaje de Guillermo, ahí tienes la solución, en su ejemplo solo tienes que cambiar “persona.sitio” por “item.enlace”.

      Un saludo.