Burbuja de notificación de Apple Script - solicitud de estilo de respuesta rápida

1

Sé que puede activar una notificación utilizando Apple Script:

osascript -e 'display notification "Hello" with title "How are you feeling?"'

Sin embargo, también quiero poder solicitar ciertos valores en el estilo de iMessages reply-from-notification-popup .

Por ejemplo, quiero poder hacer esto desde el script de shell:

ANS=$(osascript -e 'display notification "Hello" with title "How are you feeling?"' with prompt)
echo "User is feeling $ANS"

¿Es esto posible?

    
pregunta Sridhar Ratnakumar 25.01.2015 - 13:58

2 respuestas

1

La apelación en la notificación es, obviamente, típicamente su estética, pero si sus funcionalidades eran las que usted necesitaba, entonces está de suerte porque puede usar el diálogo de visualización para actuar literalmente exactamente. de la misma manera:

set userCanceled to false
try
    set dialogResult to display dialog ¬
        "How are you feeling?" with title ¬
        "Hello" buttons {"Close", "Reply"} ¬
        default button "Reply" cancel button ¬
        "Close" giving up after 8 ¬
        default answer ("")
on error number -128
    set userCanceled to true
end try

log "User is feeling " & text returned of dialogResult 

El "darse por vencido después de 8" significa que si no ocurre nada dentro de ese tiempo, la caja desaparecerá.

Teóricamente, también puedes hacer que se parezca más a una notificación haciendo que el cuadro de texto solo aparezca después de que el usuario presione "Responder". Puede hacer esto haciendo una copia de este cuadro de diálogo sin la parte de "respuesta predeterminada", y eliminando la parte de "abandonar después de 8" del original, luego colocando la copia antes del original y colocando esta declaración if alrededor del original:

if button returned of dialogResult is "Reply" then

Otra cosa que podrías hacer con el cuadro de diálogo, que estoy bastante seguro de que ni siquiera puedes hacer con la notificación de imagen, es controlarlo con el teclado. Cuando aparece un cuadro de diálogo con un cuadro de texto, puede comenzar a escribir de inmediato, presionar intro para enviar y presionar esc en cualquier momento.

Si está configurado para utilizar una notificación, desafortunadamente, la sección de notificación de la documentación de applecript sugiere que no es posible (con applescript). De acuerdo con esto, ni siquiera puedes devolver uno de los dos valores, y mucho menos dejar que el usuario ingrese una cadena.

] 1

Sin embargo, si pudiera obtener 2 respuestas de él, id sugiere tener un botón de cancelación y otro que reciba el texto de su portapapeles. Quizás no sea el enfoque más elegante, pero podría hacer el trabajo.

    
respondido por el pau 07.12.2015 - 03:04
0

¿Qué te parece:

set allResults to ¬
display dialog "Hello!\n\nHow are you feeling?" default answer ¬
    "" buttons {"(enter)", "Don't ask."} default button 1
set answer to button returned of allResults
set userFeeling to text returned of allResults

if (userFeeling is not "") and (answer is not "Don't ask.") then ¬
    display dialog "User is feeling ... " & userFeeling buttons ¬
{"Congrats!", "So sorry..."} default button 1
end if

... simple y fácil ...

    
respondido por el clemsam lang 06.12.2015 - 21:40

Lea otras preguntas en las etiquetas