2010-10-13 9 views
3

Je tente d'écrire un simple plugin dans safari qui doit seulement vérifier si une application que j'ai développée est installée via javascript. L'application se lance en utilisant un uri personnalisé.Comment détecter dans Safari si une application est installée

Mon problème est très similaire à celui présenté here, mais je ne développe pas contre iphone \ ipad et tout ce que je veux vraiment est un résultat vrai/faux de mon chèque afin que je puisse présenter à l'utilisateur un téléchargement Application ou lien "Lancer l'application".

J'ai déjà une version de Windows qui fonctionne à l'aide npruntime pour Firefox \ chrome et ATL pour IE qui est décrit here

Répondre

0

Launch Services est l'API dont vous avez besoin. Voir l'exemple ci-dessous:

#include <ApplicationServices/ApplicationServices.h> 

bool check_scheme_handler(CFStringRef scheme){ 
    CFStringRef handler=LSCopyDefaultHandlerForURLScheme(scheme); 
    if(handler){ 
     CFShow(handler); 
     CFRelease(handler); 
     return true; 
    }else{ 
     CFShow(CFSTR("not found")); 
     return false; 
    } 
} 

int main(){ 
    check_scheme_handler(CFSTR("http")); 
    check_scheme_handler(CFSTR("bogus")); 
    return 0; 
} 
+0

Désolé d'être un noob total, mais pourriez-vous en dire un peu plus sur le processus de mise en œuvre et d'utilisation de cette méthode? Un point vers un didacticiel ou une procédure pas à pas serait grandement apprécié. – Amith

+1

Eh bien c'est le moyen de détecter si un schéma d'URL est supporté ou non. Ce code peut être utilisé à l'intérieur ou à l'extérieur du plugin Safari. La façon d'écrire un plugin Safari/Firefox serait une question différente: p – Yuji

+0

Il peut * être * utilisé dans un plugin NPAPI, mais pas dans une extension Safari. Droite? – uchuugaka

Questions connexes