5 votes

Comment puis-je permettre aux applications créées dans Fluid d'accéder aux données de localisation de mon ordinateur ?

Certaines des applications que j'essaie de créer ont besoin que je partage mon emplacement pour fonctionner au mieux, mais l'application Fluid semble ne pas le permettre. J'ai parcouru tous les paramètres, mais je ne trouve pas ce paramètre.

Google Maps, par exemple, ne me permet pas de voir automatiquement ma position actuelle, pas plus que mon facebook et les autres applications sociales.

1voto

NVRAM Points 2555

Ceci n'est pas une réponse à votre question en soi Mais j'ai arrêté d'utiliser Fluid et je suis passé aux SSB de Chrome, à la fois pour la possibilité d'ajouter des plugins Chrome (un must pour moi) et pour la meilleure expérience (IMHO) de Chrome comme navigateur. Jusqu'à présent, j'ai créé des SSB pour Google Play Music, Gmail, Google Calendar et MightyText. Tous fonctionnent à merveille.

Le script que j'utilise est le suivant :

#!/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

Je le colle ici parce que je ne me rappelle pas où je l'ai trouvé, mais c'est l'un des seuls "Chrome-to-SSB" scripts qui crée un ensemble unique de préférences pour l'application qu'il crée.

NOTE : Vous devez encore personnaliser l'environnement des Préférences afin d'éviter les problèmes liés au trousseau de clés Mac : plusieurs navigateurs s'identifient au système sous le nom de " Google Chrome " et l'application Keychain Access entre dans une boucle infinie de demande de droits d'authentification. Faites-moi confiance et lisez l'avertissement en bas de page.

Donc :

  • Téléchargez le fichier script.
  • Cachez-le dans un endroit sûr. Je recommande de le laisser en vrac dans votre dossier Home, puisque c'est là que le Terminal démarrera.
  • Donnez-lui le nom que vous voulez (chromeSSB.sh est mémorable) ou créer un alias dans votre fichier .bashrc ou .bash_profile.
  • Invoquez le script en tapant son nom dans le terminal, donc, en utilisant le nom de l'exemple ci-dessus :

enter image description here

et appuyez sur 'Enter'. Le script vous guidera alors dans la création de votre SSB, en vous demandant, dans l'ordre

  • Quel devrait être le nom de l'application ?
  • Quelle est l'url (par ex. https://www.google.com/calendar/render ) ?
  • Quel est le chemin complet de l'icône (par exemple, /Users/username/Desktop/icon.png) ?

Et c'est tout ! Assurez-vous de télécharger et de pointer vers un beau png haute résolution de l'icône de votre application, si cela vous importe.

Maintenant, l'avertissement mentionné ci-dessus.

Étant donné que vous créez une instance distincte de Chrome et que Chrome souhaite vous aider de toutes les manières possibles en synchronisant votre vie avec tous les navigateurs Chrome que vous utilisez, vous devrez suivre quelques étapes lors du premier lancement de votre nouveau SSB basé sur Chrome. Au lancement, vous serez accueilli par l'écran suivant :

enter image description here

1.

Vous allez vouloir un -Cochez cette case, afin que votre copie "normale" de Chrome soit votre copie "par défaut".

Alors vous verrez :

enter image description here

2.

Saisissez les informations de votre compte Google et "Connectez-vous".

Vous devrait l'écran suivant s'affiche, vous demandant ce que vous souhaitez synchroniser entre vos navigateurs (si vous ne voyez pas cet écran immédiatement, voir ci-dessous). Choisissez "Choose What To Sync" dans le menu contextuel

enter image description here

Puis DÉSÉLECTIONNER TOUTES LES CASES À COCHER

enter image description here

de sorte que vous ne synchronisez rien entre les navigateurs. Cela vous permet d'accéder aux informations de votre compte Google (si vous en avez besoin), mais le navigateur reste une application totalement autonome, ce qui est exactement ce que vous voulez. Si vous laissez l'une de ces cases "synchronisation" cochée, vous le faites à vos risques et périls, car le croisement des flux est mauvais. Considérez cela comme un conseil de sécurité important ;-)

Cela semble trop compliqué, mais il suffit de le lire une fois pour s'en sortir.

  1. Créez l'application.
  2. Assurez-vous que la nouvelle application (navigateur) ne se synchronise pas avec d'autres instances de Chrome.
  3. Profitez-en.

Si vous n'avez pas vu l'écran de préférences "Choisir quoi synchroniser" dès que vous vous êtes connecté à Chrome, ne vous inquiétez pas. J'ai vu cela se produire à plusieurs reprises. Procédez à partir d'ici :

Ainsi, vous êtes connecté à la session du navigateur mais PAS à Chrome (ou quelque chose comme ça). Qu'est-ce que cela signifie ? Vos signets, préférences, plugins, etc. sont pas automatiquement synchronisé pour vous en ce moment, il y a donc une dernière étape pour se connecter. Choisissez "Préférences" dans le menu principal de votre application (quel que soit le nom que vous lui avez donné)

enter image description here

et "Se connecter à Chrome"

enter image description here

Entrez à nouveau votre login, puis passez à l'étape 2, ci-dessus.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X