Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

473
Visualizações
¿Cómo acceder a la URL de un navegador o al archivo de una aplicación usando AXUIElementCopyAttributeValue o equivalente para Mac OS usando Swift?

Estoy tratando de obtener las URL que tiene abierto un navegador como safari (para cada ventana). Actualmente, obtengo todas las aplicaciones en ejecución en mi Mac y saco la aplicación de safari, por lo que puedo obtenerla como una 'NSRunningApplication'. Además, estoy tratando de encontrar el archivo que una aplicación como Final Cut Pro ha abierto para todas sus instancias.

Luego uso el siguiente código para intentar obtener las direcciones URL del navegador Safari:

 if AXUIElementCopyAttributeValue(appReference, "AXURL" as CFString, &urls) == .success { let url = urls as! [AXUIElement] print("url = \(url)") }

El código que utilizo para intentar obtener el documento de la instancia de Final Cut Pro es (no estoy seguro de cómo obtener el documento para cada instancia del programa):

 if AXUIElementCopyAttributeValue(appReference, "AXDocument" as CFString, &doc) == .success { let docReference = doc as! [AXUIElement] print("docReference = \(docReference)") }

este código solo devuelve una matriz de 'AXUIElement' que no estoy seguro de cómo obtener una URL.

¿Alguna idea sobre lo que podría estar faltando para extraer las direcciones URL actuales que tiene abierto el navegador Safari? Además, ¿alguna idea de lo que podría estar faltando para extraer el archivo para cada instancia (ventana) de un programa determinado? Me gustaría obtener todas las URL de cada ventana y de alguna manera distinguir qué ventana es cuál (por ejemplo, usar una matriz de matrices con URL en ellas).

Tenga en cuenta que estaba tratando de no usar el script de Apple, pero si conoce una buena solución y cómo podría integrarla en mi aplicación rápida, me encantaría escucharla.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Con AppleScript, puede usar NSAppleScript en Swift.

Ejemplo:

 set r to "" -- an empty variable for appending a string tell application "Safari" repeat with w in windows -- loop for each window, w is a variable which contain the window object if exists current tab of w then -- is a valid browser window repeat with t in tabs of w -- loop for each tab of this window, , t is a variable which contain the tab object -- get the title (name) of this tab and get the url of this tab tell t to set r to r & "Title : " & name & ", URL : " & URL & linefeed -- append a line to the variable (r) (* 'linefeed' mean a line break 'tell t' mean a tab of w (window) '&' is for concatenate strings, same as the + operator in Swift *) end repeat end if end repeat end tell return r -- return the string (each line contains a title and an URL)

El AppleScript devolverá una cadena, como esta :

 Title : the title of the first tab, URL : the url of the first tab Title : the title of the second tab, URL : the url of the second tab Title : the title of the third tab, URL : the url of the third tab ....

over 4 years ago · Santiago Trujillo Relatório

0

Buscaría en la propiedad kAXURLAttrubte. Es mejor usar que "AXURL"

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda