¿Cómo habilito las aplicaciones creadas en Fluid para acceder a los datos de ubicación de mi computadora?

5

Algunas de las aplicaciones que estoy intentando crear necesitan que comparta mi ubicación para que funcione de la mejor manera, pero la aplicación fluida parece no permitirlo. He revisado todas las configuraciones, pero no puedo encontrar esta configuración.

Google Maps, por ejemplo, no me permite ver automáticamente mi ubicación actual ni mi facebook y otras aplicaciones sociales.

    
pregunta user54961 12.08.2013 - 16:52

1 respuesta

1

Esto no es una respuesta a su pregunta per se , pero dejé de usar Fluid y pasé a los SSB de Chrome, tanto por la capacidad de agregar complementos de Chrome (una necesidad para mí) como por ejemplo. Experiencia (IMHO) de Chrome como mi navegador. Hasta ahora he creado SSB para Google Play Music, Gmail, Google Calendar y MightyText. Todos trabajan muy bien.

El script que estoy usando 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 "\
#!/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 "\%pre%")"; 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
")"; 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 estoy pegando aquí porque no puedo recordar dónde lo encontré, pero es uno de los únicos scripts "Chrome-to-SSB" que crea un conjunto único de preferencias para la aplicación que crea. .

NOTA : aún necesita personalizar el entorno de Preferencias para no tener problemas con Mac Keychain con varios navegadores que se identifican en el sistema como "Google Chrome" y la aplicación Keychain Access en un bucle infinito solicitando derechos de autenticación. Confíe en mí y lea la advertencia en la parte inferior.

Entonces:

  • Descargue el archivo de script
  • Guárdalo en algún lugar seguro. Recomiendo perder en su carpeta de inicio, ya que aquí es donde comenzará la Terminal.
  • Dale el nombre que desees (chromeSSB.sh es memorable) o crea una alias a él en tu .bashrc o .bash_profile.
  • Invoque el script escribiendo su nombre en el terminal, por lo tanto, utilizando el nombre del ejemplo anterior:

ypulsa'Enter'.ElscriptloguiaráatravésdelacreacióndesuSSB,preguntando,enorden...

  • ¿Cómodeberíallamarselaaplicación?
  • ¿Quéeslaurl(porejemplo, enlace )?
  • ¿Cuál es la ruta completa al ícono (por ejemplo, /Usuarios/nombre de usuario/Desktop/icon.png)?

Y eso es todo! Asegúrate de descargar y señalar un hermoso ícono de alta resolución del ícono de la aplicación deseada, si eso te importa.

Ahora, la advertencia mencionada anteriormente.

Debido a que está creando una instancia separada de Chrome y porque Chrome quiere ayudarlo de todas las formas posibles al sincronizar su vida con cada navegador Chrome que use, querrá dar un par de pasos la primera vez que inicie tu nuevo SSB basado en Chrome. En el lanzamiento serás recibido con:

1.

Vasaquererun-marcaresacasilla,paraquetucopia"normal" de Chrome sea tu copia "predeterminada".

Entonces verás:

2.

IngreselainformacióndesucuentadeGoogley"Iniciar sesión"

Usted debería ver la siguiente pantalla, preguntándole qué desea sincronizar entre sus navegadores (si no ve esta pantalla inmediatamente, vea más abajo). Elija "Elegir qué sincronizar" en el menú emergente ...

Luego,DESELECCIONECADACAJADECONTROL...

... para que no estés sincronizando nada entre los navegadores. Esto le da acceso a la información de su cuenta de Google (si la necesita) pero, por lo demás, deja el navegador como una aplicación completamente independiente, que es exactamente lo que desea. Si deja marcada cualquiera de estas casillas de verificación de 'sincronización', lo hace bajo su propio riesgo, porque cruzar las corrientes es malo. Considera que un consejo de seguridad importante. ;-)

Esto parece demasiado complicado, pero solo léelo una vez y estarás bien.

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

Si no vio la pantalla de preferencias "Elegir qué sincronizar" en cuanto inició sesión en Chrome, no se preocupe. Lo he visto pasar unas cuantas veces. Proceda desde aquí:

Por lo tanto, has iniciado sesión en la sesión del navegador pero NO has iniciado sesión en Chrome (o algo así). ¿Qué significa esto? Sus marcadores, preferencias, complementos, etc., no se sincronizan automáticamente en este momento, así que hay un último paso para iniciar sesión. Elija "Preferencias" en el menú principal de su aplicación (como sea que lo llame) ...

y"Iniciar sesión en Chrome" ...

Vuelva a ingresar su nombre de usuario y continúe con el paso 2, arriba.

    
respondido por el dashard 05.09.2014 - 00:25

Lea otras preguntas en las etiquetas