![]() |
|
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Cuadros de diálogo con Javascript
Hasta ahora, usaba con frecuencia el método alert de JS, para mostrar cuadros de dialogo en algunos de mis proyectos, pero hoy he descubierto dos tipos de cuadros de diálogos más, que os pueden resultar útiles.
Aquí voy a poner un resumen, pero para el que quiera profundizar, puede echarle un vistazo a la página en la cual he encontrado la información, que además está muy bien explicado: http://elfreneticoinformatico.com/cu...on-javascript Los cuadros de diálogos a los que me refiero son; confirm y prompt confirm: muestra un mensaje con un botón de aceptar y otro de cancelar. El resultado se guarda en una variable boleana (true o false) Ejemplo: Código:
var confirmacion = confirm("Pulsa el botón que quieras"); if(confirmacion){ alert("Has pulsado aceptar"); } else { alert("Has pulsado cancelar"); } Ejemplo: Código:
var textoEscrito = prompt("Escribe un texto", "Texto"); if(textoEscrito != null){ alert("Has escrito " + textoEscrito); } else { alert("No has escrito nada"); } Los tres pueden ser muy útiles, pero sobretodo el método prompt, ya que creo que puede ser una buena alternativa para la acción "Consultar variable" que yo particularmente la uso mucho. Creo que es una ventaja, el no tener que prestar atención a como se verá la escena perteneciente a la acción "consultar variable", en otros teléfonos con diferente resolución. Un saludo. Última edición por Rsc Día 11/03/18 a las 02:34:25 |
Los siguientes 3 usuarios han agradecido a Rsc su comentario: | ||
|
#2
|
||||
|
||||
Yo los usaba hace tiempo pero por diferente motivo. Si llamas a una escena (o tarea) de Tasker desde dentro de JS y en un momento dado quieras pedir algún dato la ejecución (de JS) continua inmediatamente, no espera a que finalice la escena, por lo que este método (prompt/confirm) era la única manera. Al final los reemplacé con una tarea completa + escena en lugar de solo JS, a modo de introducción de datos más visual.
Una cosa, el primer ejemplo que has puesto se pueden simplificar un poco: Código:
if(confirm("Pulsa el botón que quieras")) alert("Has pulsado aceptar"); else alert("Has pulsado cancelar"); |
Los siguientes 3 usuarios han agradecido a danko9696 su comentario: | ||
#3
|
||||
|
||||
No esperaba menos de uno de losprecursores de JS en este foro.
Cita:
Cita:
Nada más leer esto, me he puesto a buscar si existía alguna manera para mostrar algún cuadro emergente con una lista seleccionable. He encontrado algo pero no lo se implementar en Tasker. http://www.dummies.com/web-design-de...3-programming Respecto a lo de crear escenas completas usando JS, creo que no se puede... La opción de crear escena usando JS, es exactamente igual a la acción de Tasker de crear escena (Crea una escena ya existente). Vamos, que realmente no es "crear", sería más correcto denominar esa acción como "prepara escena". También se pueden crear elementos de una escena desde JS, pero más de lo mismo, creo que hay que atenerse a los parámetros que se pueden incluir en la interfaz de tasker a la hora de crear un elemento. La verdad que me he peleado mucho con las escenas de Tasker, porque creo que es uno de los puntos más flojos... He intentado hasta modificar el archivo xml de las escenas, intentando engañar a Tasker, modificando parámetros que no deja poner en la interfaz de creación de escenas, pero el resultado ha sido negativo. A ver si alguien saca algo en claro sobre si se puede mostrar algún cuadro de diálogo seleccionable, o algún otro método que nos permita interactuar con proyectos sin necesidad de recurrir a escenas. |
Los siguientes 2 usuarios han agradecido a Rsc su comentario: | ||
#5
|
||||
|
||||
Cita:
Código:
/* * Web Shortcuts * Create shortcuts to your favourite websites */ LL.bindClass("android.widget.LinearLayout"); LL.bindClass("android.widget.EditText"); LL.bindClass("android.app.AlertDialog"); LL.bindClass("android.content.DialogInterface"); LL.bindClass("android.content.Intent"); var mctx = LL.getContext(); var ll = new LinearLayout(mctx); with(ll){ setOrientation(LinearLayout.VERTICAL); setBackgroundColor(0xffff); setLayoutParams(new LinearLayout.LayoutParams(200, 100)); } var title = new EditText(mctx); with(title){ setHint("Title"); setLayoutParams(new LinearLayout.LayoutParams(-1, -1)); } ll.addView(title); var url = new EditText(mctx); with(url){ setHint("Url"); setLayoutParams(new LinearLayout.LayoutParams(-1, -2)); } ll.addView(url); adb = new AlertDialog.Builder(mctx); adb.setTitle("Configure Web Shortcut"); adb.setCancelable(false); adb.setView(ll); adb.setPositiveButton("Create", new DialogInterface.OnClickListener(){ onClick:function(dialog, id){ if(title.length() >= 3 && url.length() >= 3){ try{ var i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url.getText().toString().trim())); var d = LL.getCurrentDesktop(); d.addShortcut(title.getText().toString().trim(), i, 30.0, 30.0); Android.makeNewToast("Shortcut was created", false).show(); //LL.startActivity(i); }catch(anfe){ Android.makeNewToast("Activity not found Exception", true).show(); } } } }); adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){ onClick:function(dialog, id){ dialog.dismiss(); } }); var alert = adb.create(); alert.show(); Otra posibilidad mucho mejor para eso es Droidscript, que me gustó en si pero no su sistema de acceso por pago mensual para disponer de ciertas funcionalidades. Pero si vas a usarlo intensivamente creo que es mejor que el de Tasker. |
Gracias de parte de: | ||
#6
|
||||
|
||||
Cita:
Quizás en unos meses, ya que me he vuelto a proponer a aprender Java, que ya se que no es lo mismo, pero al menos estaré un poco familiarizado con el lenguaje de código. Así que nada, lo que se vaya a averiguar más sobre este tema, queda en tus manos, o en la de algunos de los que controlan más este tema. Y no miro a nadie @WillyWeb Un saludo. |
#7
|
|
Cita:
si de alguna manera tienes tiempo y puedes compartir mas ejemplo como estos estaría perfecto. gracias de nuevo al igual que @danko9696 que sigue al pie del camión ![]() |
#8
|
||||
|
||||
Cita:
En cambio en el que puse, aunque no sepas bien lo que hace el código, al principio se puede ver como parece añadir referencias a varios objetos de android de forma bastante clara, como "android.widget.EditText", "android.content.DialogInterface", etc..., para poderlos usar posteriormente. Luego los detalles de como funciona ya es otra cosa, pero resulta bastante obvio que es código destinado a funcionar en android. O sea, que sí conoces como tienes que declarar las librerías en principio es posible tener acceso a objetos de android como menus, listboxes, layouts (donde colocar los menus, textos, etc...) usando Javascript, por lo menos en DroidScript y Lightning Launcher. Lo que no estoy seguro es si en Tasker también. Y si eso se puede el resto es luego consultar documentación genérica de android para conocer la sintaxis y también ayudado por Notepad++ o VisualStudioCode para hacer mucho más legible el código, escribiendolo desde el PC directamente en el móvil, en lugar de en este directamente, donde usar JS es un caos salvo que sea algo muy muy simple. |
Los siguientes 2 usuarios han agradecido a danko9696 su comentario: | ||
#9
|
![]() Mira que intento no meterme con nadie. ![]() Poco puedo decir sobre el tema porque apenas uso las escenas, pero usando un elemento VistaWeb junto con HTML+JS se pueden hacer cosas muy chulas ... ahí lo dejo. ![]() |
Gracias de parte de: | ||
#10
|
||||
|
||||
Claro, creo que a nadie se le había ocurrido antes. Desde que se añadió el elemento VistaWeb, se podrá hacer cualquier diseño para mostrarlo en la escena. Que bien se te da Tasker, deberías haber sido tu el sustituto de Pent jeje
|
Gracias de parte de: | ||
#11
|
||||
|
||||
Nosotros trabajamos mucho con el elemento WebView desde hace tiempo en el grupo mio de Telegram, y el de mi gran compañero @MELO en el suyo.
Si quereis uniros... (inglés requerido) |
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario: | ||
#12
|
||||
|
||||
Se agradecería que pusieras algún ejemplo por aquí, de algunos de los usos que le hayáis dado al elemento WebView.
Se agradece el ofrecimiento, pero yo por lo pronto, prefiero dosificar mis sesiones de Tasker en foros, vaya a ser que acabe dedicándole más tiempo todavía. Un saludo. |
Los siguientes 2 usuarios han agradecido a Rsc su comentario: | ||
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 20:12:03 (GMT +2)
HTCMania: líderes desde el 2007