5 votos

¿Cómo puedo permitir que las aplicaciones creadas en Fluid accedan a los datos de localización de mi equipo?

Algunas de las aplicaciones que estoy tratando de crear necesitan que comparta mi ubicación para funcionar de la mejor manera, pero la aplicación de fluidos parece no permitirlo. He buscado en todos los ajustes, pero no puedo encontrar esta configuración.

Google Maps, por ejemplo, no me permite ver automáticamente mi ubicación actual, como tampoco lo hacen mi Facebook y otras aplicaciones sociales.

1voto

NVRAM Puntos 2555

Esto no es una respuesta a su pregunta por sí mismo pero dejé de usar Fluid y me pasé a los SSB de Chrome, tanto por la posibilidad de añadir plugins de Chrome (algo imprescindible para mí) como por la mejor experiencia (en mi opinión) de Chrome como navegador. Hasta ahora he creado SSBs para Google Play Music, Gmail, Google Calendar y MightyText. Todos funcionan de maravilla.

El script que estoy utilizando es el siguiente:

#!/bin/bash

# White Space Trimming: http://codesnippets.joyent.com/posts/show/1816
trim() {
  local var=$1
  var="${var#"${var%%[![:space:]]*}"}"   # remove leading whitespace characters
  var="${var%"${var##*[![:space:]]}"}"   # remove trailing whitespace characters
  /bin/echo -n "$var"
}

### Get Input
/bin/echo "What should the Application be called?"
read inputline
name=`trim "$inputline"`

/bin/echo "What is the url (e.g. https://www.google.com/calendar/render)?"
read inputline
url=`trim "$inputline"`

/bin/echo "What is the full path to the icon (e.g. /Users/username/Desktop/icon.png)?"
read inputline
icon=`trim "$inputline"`

#### Find Chrome. If its not in the standard spot, try using spotlight.
chromePath="/Applications/Google Chrome.app"
if [ ! -d "$chromePath" ] ; then
    chromePath=`mdfind "kMDItemCFBundleIdentifier == 'com.google.Chrome'" | head -n 1`
    if [ -z "$chromePath" ] ; then
    /bin/echo "ERROR. Where is chrome installed?!?!"
    exit 1
    fi
fi
chromeExecPath="$chromePath/Contents/MacOS/Google Chrome"

# Let's make the app whereever we call the script from...
appRoot=`/bin/pwd`

# various paths used when creating the app
resourcePath="$appRoot/$name.app/Contents/Resources"
execPath="$appRoot/$name.app/Contents/MacOS"
profilePath="$appRoot/$name.app/Contents/Profile"
plistPath="$appRoot/$name.app/Contents/Info.plist"
versionsPath="$appRoot/$name.app/Contents/Versions"

# make the directories
/bin/mkdir -p  "$resourcePath" "$execPath" "$profilePath"

# convert the icon and copy into Resources
if [ -f "$icon" ] ; then
    if [ ${icon: -5} == ".icns" ] ; then
        /bin/cp "$icon" "$resourcePath/icon.icns"
    else
        sips -s format tiff "$icon" --out "$resourcePath/icon.tiff" --resampleWidth 128 >& /dev/null
        tiff2icns -noLarge "$resourcePath/icon.tiff" >& /dev/null
    fi
fi

# Save a symlink to the location of the Chrome executable to be copied when the SSB is started.
/bin/ln -s "$chromeExecPath" "$execPath/Chrome"

### Create the wrapper executable
/bin/cat >"$execPath/$name" <<EOF
#!/bin/sh
ABSPATH=\$(cd "\$(dirname "\$0")"; pwd)
/bin/cp "\$ABSPATH/Chrome" "\$ABSPATH/$name Chrome"
exec "\$ABSPATH/$name Chrome" --app="$url" --user-data-dir="\$ABSPATH/../Profile" "\$@"
EOF
/bin/chmod +x "$execPath/$name"

### create the Info.plist
/bin/cat > "$plistPath" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>CFBundleExecutable</key>
<string>$name</string>
<key>CFBundleName</key>
<string>$name</string>
<key>CFBundleIconFile</key>
<string>icon.icns</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
</dict>
</plist>
EOF

### link the Versions directory
/bin/ln -s "$chromePath/Contents/Versions" "$versionsPath"

### create a default (en) localization to name the app
/bin/mkdir -p "$resourcePath/en.lproj"
/bin/cat > "$resourcePath/en.lproj/InfoPlist.strings" <<EOF
CFBundleDisplayName = "$name";
CFBundleName = "$name";
EOF

### tell the user where the app is located so that they can move it to
### /Applications if they wish
/bin/cat <<EOF
Finished! The app has been installed in
$appRoot/$name.app
EOF

Lo pego aquí porque no recuerdo dónde lo encontré, pero es uno de los únicos "Chrome-to-SSB" scripts que crea un conjunto único de preferencias para la aplicación que crea.

NOTA : Todavía tienes que personalizar el entorno de las Preferencias para no tener problemas con el Llavero de Mac con múltiples navegadores que se identifican en el sistema como "Google Chrome" y la aplicación de Acceso al Llavero entra en un bucle infinito solicitando derechos de autenticación. Confía en mí y lee la advertencia que aparece al final.

Así que:

  • Descargar el archivo script
  • Escóndelo en un lugar seguro. Te recomiendo que lo sueltes en tu carpeta de Inicio, ya que es donde se iniciará el Terminal.
  • Nómbralo como quieras (chromeSSB.sh es memorable) o crear un alias en su .bashrc o .bash_profile.
  • Invoca el script escribiendo su nombre en el terminal, así, usando el nombre de ejemplo anterior:

enter image description here

y pulsa 'Enter'. El script te guiará entonces por la creación de tu BLU, preguntando, en orden

  • ¿Cómo debe llamarse la aplicación?
  • Cuál es la url (por ejemplo https://www.google.com/calendar/render )?
  • ¿Cuál es la ruta completa del icono (por ejemplo, /Usuarios/nombredeusuario/Escritorio/icon.png)?

Y eso es todo. Asegúrese de descargar y apuntar a un hermoso png de alta resolución de su icono de la aplicación deseada, si eso le importa.

Ahora, la advertencia mencionada anteriormente.

Debido a que estás creando una instancia separada de Chrome, y debido a que Chrome quiere ayudarte de todas las maneras posibles sincronizando tu vida entre todos los navegadores Chrome que utilizas, querrás tomar un par de pasos cuando inicies por primera vez tu nuevo SSB basado en Chrome. Al iniciar el sistema, aparecerá el siguiente mensaje:

enter image description here

1.

Vas a querer un -marque esa casilla, para que su copia "normal" de Chrome sea su copia "por defecto".

Entonces lo verás:

enter image description here

2.

Introduce los datos de tu cuenta de Google y "Accede".

Usted debe verá la siguiente pantalla, en la que se le preguntará qué desea sincronizar entre sus navegadores (si no ve esta pantalla inmediatamente, véase más abajo). Elija "Elegir qué sincronizar" en el menú emergente

enter image description here

Entonces DESMARCAR TODAS LAS CASILLAS DE VERIFICACIÓN

enter image description here

para que no se sincronice nada entre los navegadores. Esto te da acceso a la información de tu cuenta de Google (si la necesitas) pero por lo demás deja al navegador como una aplicación completamente autónoma, que es exactamente lo que quieres. Si dejas marcada alguna de estas casillas de "sincronización", lo haces por tu cuenta y riesgo, porque cruzar los flujos es malo. Considera esto como un importante consejo de seguridad ;-)

Esto parece demasiado complicado, pero léelo una vez y te irá bien.

  1. Crea la aplicación.
  2. Asegúrate de que la nueva aplicación (navegador) no se sincroniza con otras instancias de Chrome.
  3. Disfruta.

Si no has visto la pantalla de preferencias "Elegir qué sincronizar" en cuanto has entrado en Chrome, no te preocupes. He visto que eso ocurre algunas veces. Procede desde aquí:

Por lo tanto, has iniciado la sesión del navegador pero NO has iniciado la sesión de Chrome (o algo así). ¿Qué significa esto? Tus marcadores, preferencias, plugins, etc., están no automáticamente para ti en este momento, así que hay un último paso para iniciar la sesión. Elige "Preferencias" en el menú principal de tu aplicación (sea cual sea su nombre)

enter image description here

y "Iniciar sesión en Chrome"

enter image description here

Vuelva a introducir su nombre de usuario y continúe con el paso 2, más arriba.

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