2010-10-13 135 views
3

我试图在safari中编写一个简单的插件,只需要检查我开发的应用程序是否通过javascript安装。该应用程序使用自定义uri启动。如何在Safari中检测是否安装了应用程序

我的问题与提出的here非常相似,但是我并没有针对iphone \ ipad开发,我真正想要的只是从我的支票中获得真正的\ false结果,以便我可以向用户展示“下载应用程序或“启动应用程序”链接。

我已经有一个工程,并使用npruntime一个Windows版本被描述here

回答

0

Launch Services是你需要的API的Firefox \ Chrome和ATL的IE浏览器。看到下面的例子:

#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

对不起,你是一个总noob,但你能详细阐述一下我实施和利用这种方法的过程吗?有用的教程或演练的一点将不胜感激。 – Amith 2010-10-13 17:47:12

+1

那么这是检测URL方案是否被支持的方式。此代码可以在Safari插件的内部或外部使用。编写Safari/Firefox插件的方式将是一个不同的问题:p – Yuji 2010-10-13 20:22:06

+0

它可以用于NPAPI插件,但不能用于Safari扩展。对? – uchuugaka 2015-04-27 03:20:22

相关问题