Estoy tratando de obtener una URL a través de AppleScript, y luego mostrarla como un enlace clicable a través de una ventana. ¿Cómo puedo hacer esto? (si tengo que utilizar Xcode para esto, por favor, añadir la respuesta, pero proporcionar instrucciones detalladas, Por favor, )
Respuestas
¿Demasiados anuncios?AppleScript no puede mostrar texto enriquecido (HTML) en un diálogo emergente. Así que sus opciones son:
-
Mostrar un diálogo de texto normal con AppleScript, mostrando la URL y preguntando al usuario si quiere ir allí. Si el usuario hace clic en "Aceptar", abrir esa URL (eso es exactamente 1 clic, por lo que es más o menos equivalente a un enlace clicable).
-- tested with Safari 5.1.7 on Mac OS X 10.6.8 set theUrl to "http://j.mp/LgHoEB" try display dialog theUrl & "\nClick OK to open this URL in Safari." with title "Open URL?" with icon caution if button returned of result is "OK" then tell application "Safari" to make new document with properties {URL:theUrl} end if on error number -128 -- user cancelled -- do something else end try
-
Utilice el comando AppleScript de Safari
do JavaScript
para hacer una ventana emergente de JavaScript con la URL deseada como un enlace clicable (y posiblemente algo más de HTML personalizado):-- tested with Safari 5.1.7 on Mac OS X 10.6.8 set theUrl to "http://j.mp/LgHoEB" set JSPopup to "(function() {" & ¬ "var w = window.open('', 'Clickable link');" & ¬ "w.document.write(" & ¬ "'<html><body><p>" & ¬ "<a href=\"" & theUrl & "\">" & theUrl & "</a>" & ¬ "</p></body></html>'" & ¬ ");})()" tell application "Safari" do JavaScript JSPopup in current tab of window 1 end tell
Por supuesto, esto sólo funcionará si su Safari permite ventanas emergentes (con mi configuración, por ejemplo, se abre una nueva pestaña en su lugar).
Hasta ahora los enlaces no se pueden hacer clic en los apple scripts pero puede haber una forma de evitarlo. Para abrir un solo enlace, puede utilizar como abajo,
set theAlertText to "Swiftlint is not installed"
set theAlertMessage to "Download from https://github.com/realm/SwiftLint manually. Would you like to open link?"
display alert theAlertText message theAlertMessage as critical buttons {"Cancel", "Open link"} default button "Open link" cancel button "Cancel" giving up after 60
set the button_pressed to the button returned of the result
if the button_pressed is "Open link" then
open location "https://github.com/realm/SwiftLint/blob/master/README.md"
end if