2014-06-08 1 views
0

Quelqu'un peut-il me diriger dans la bonne direction pour développer une application Mac pouvant communiquer avec un site Safari? Je ne veux pas utiliser les vues Web, je veux qu'il communique avec le site Web dans le safari lui-même.Application Mac pour communiquer avec l'application Web en safari

J'ai le site envoyer des messages à l'application native très bien en utilisant le schéma de l'application app (app nom: // some/url /).

Idéalement je voudrais que notre application pour fournir une authentification unique pour notre petit site interne et de déclenchement dans la page des événements JS pour le rechargement des données etc.

Je havne't pu trouver toute la documentation à ce sujet.

+0

'[[NSWorkspace sharedWorkspace] openURL:' - passe au navigateur par défaut. Est-ce suffisant ou cherchiez-vous plus que simplement ouvrir une URL? – stevesliva

+0

@stevesliva J'ai besoin de plus que d'ouvrir une URL. Si l'utilisateur a déjà une page ouverte, je veux envoyer les données de cette page spécifique. Connaissez-vous un moyen d'injecter des cookies dans Safari? – Sean256

Répondre

0

Alors voici ce que j'ai fini par faire, c'est assez compliqué, donc si quelqu'un a une meilleure suggestion s'il vous plaît faites le moi savoir.

Mon Mac App fait 2 choses quand il commence

  • Crée le répertoire ~/.appwebserverfiles
  • Lance un serveur web simple python avec le répertoire ci-dessus comme il est racine

Le Mac app peut alors écrire token.jsonp dans ce répertoire, comme celui-ci:

singleSignOnCallback({"token":"sometokenthinghere"}); 

Le site Web en utilisant jquery fera un appel ajax comme ceci:

$.ajax({ 
    url: "http://localhost:8585/token.jsonp", 
    dataType: 'jsonp' 
}); 

Lorsque cette ajax est complète, depuis sa dataType un de jsonp il Excecute tout JS qu'il y trouve. Cela appellera une fonction appelée: singleSignOnCallback()

Je peux maintenant injecter tout js dans notre webapp interne en utilisant ceci.

EDIT: Je devrais également ajouter que cela fonctionne avec n'importe quel navigateur.

Questions connexes