如何在Safari中检测是否安装了应用程序

时间:2010-10-13 14:06:39

标签: macos safari safari-extension

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

我的问题与呈现here的问题非常类似,但是我不是针对iphone \ ipad进行开发而且我真正想要的是我的检查中的真实\错误结果,以便我可以向用户呈现“下载应用程序或'启动应用程序'链接。

我已经有一个Windows版本可以使用npruntime for firefox \ chrome和ATL for IE来描述here

1 个答案:

答案 0 :(得分:0)

Launch Services是您需要的API。请参阅以下示例:

#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;
}