3 votos

¿AppleScript buscar el usuario ' s ajuste por defecto del navegador?

He estado haciendo algunas investigaciones sobre este tema, pero parece que Apple ha cambiado su jerarquía de archivos. Desde el MacScripter post "Obtener del usuario explorador predeterminado" hace referencia a la línea:

 set pListpath to (path to preferences as Unicode text) & "com.apple.LaunchServices.plist"

pero cuando se ejecuta el controlador de la Sierra estoy devuelve un error de que el archivo está vacío. Más investigación, he encontrado "Cómo utilizar un AppleScript aplicación bundle como el navegador por defecto en os x?" y "Utilizar el navegador predeterminado en la costumbre de Apple Script?" que sugieren:

on open location theURL
 ...
end open location

pero estoy queriendo preservar el navegador en una variable para hacer referencia más adelante en mi guión. En la Sierra hay un archivo o una forma de hacer referencia a lo que el navegador por defecto?

5voto

user3439894 Puntos 5883

Para OS X 10.10 y más tarde, utilice el siguiente ejemplo de AppleScript código:

set defaultBrowser to do shell script "defaults read \\
    ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure \\
    | awk -F'\"' '/http;/{print window[(NR)-1]}{window[NR]=$2}'"

if defaultBrowser is "" or defaultBrowser contains "safari" then
    --  # The default Browser is Safari.
    set defaultBrowser to "Safari"
    --  # Your code goes here.
else if defaultBrowser contains "chrome" then
    --  # The default Browser is Google Chrome.
    set defaultBrowser to "Google Chrome"
    --  # Your code goes here.
else if defaultBrowser contains "firefox" then
    --  # The default Browser is Firefox.
    set defaultBrowser to "Firefox"
    --  # Your code goes here.
else
    set defaultBrowser to "Other"
    --  # Your code goes here.
end if

Nota: el inicio de La if defaultBrowser declaración de pruebas de nada de lo "" así como "safari", ya que, si Safari es el único Navegador instalado o si otro Navegador está instalado y no ha tenido nunca un defecto del Navegador , entonces por defecto nada será devuelto por la do shell script "defaults ..." comando, y esto significa que Safari es el valor predeterminado del Navegador.

En el ejemplo de AppleScript en el código anterior, el valor de la defaultBrowser variable inicialmente se prepara para uno de los siguientes valores:

  • Nada: ""
  • com.apple.safari
  • com.google.chrome
  • org.mozilla.firefox
  • Algunos otros: output

A continuación, dentro de la if declaración, el defaultBrowser se establece en el nombre propio del Navegador. Aunque sin duda se puede modificar según sea necesario/quería.

También tenga en cuenta que el do shell script comando se utiliza aquí es más eficiente que la otra respuesta, que innecesariamente se utiliza la plutil comando de convertir el binario plist archivo a un xml plist archivo y, a continuación, volver a un binario plist archivo después. También innecesariamente utiliza tanto grep y awk cuando ambos no son necesarios desde defaults y awk (o defaults y grep) puede hacerlo sin todos los extras galimatías.


Para pre OS X 10.10, reemplazar:

~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure

Con:

com.apple.LaunchServices

En la do shell script "defaults ..." comando.

2voto

oa- Puntos 164

Correcto, el archivo ha cambiado a ~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist .

Estoy corriendo macOS 10.13 (Sierra alta), pero la secuencia de comandos debe trabajar con Sierra así. Por favor informe nuevo.

# return default browser in macOS
# https://apple.stackexchange.com/questions/313454/applescript-find-the-users-set-default-browser
# tested with macOS 10.13.3

set default_browser to do shell script "x=~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist; \\
plutil -convert xml1 $x; \\
grep 'https' -b3 $x | awk 'NR==2 {split($2, arr, \"[><]\"); print arr[3]}'; \\
plutil -convert binary1 $x"

if default_browser is "org.mozilla.firefox" then
    set browser_name to "Firefox"
else if default_browser is "com.apple.safari" then
    set browser_name to "Safari"
else
    set browser_name to "Probably Google Chrome"
end if

La salida tendrá el siguiente aspecto:

com.Apple.Safari

org.mozilla.Firefox

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X