2010-10-13 139 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

相關問題