블로그 이미지

웹 플러그인 설치 유무 및 버전 확인 방법 (How to validate web plug-In)

2016. 11. 22. 10:17

How to validate web plug-In



안녕하세요. Luyin 입니다.


오늘은 현업에서 쓰이는 Web 플러그인들의 설치 유무 및 버전 확인 방법에 대해서 정리해볼까 합니다.



세계적인 추세를 봤을 때, 브라우저들은 더 이상 플러그인들을 지원하지 않는 추세 입니다.

그래도 아직까지나, 그 강력한 퍼포먼스 때문에 플러그인을 계속해서 사용하고 있는 서비스들이 많은데요.



우선, 현재 (2016.10.21 기준) 브라우저 별 플러그인 지원현황을 살펴보겠습니다.


IE

Edge 

Chrome 

Safari

Firefox

 ActiveX

No Support

PPAPI 

NPAPI

No Support


[표1 플러그인 브라우저별 지원현황 표


※ 자세한 정보는 아래링크에서 확인 하시면 됩니다.

http://www.koreahtml5.kr/jsp/supportCenter/activeXResearchCur.jsp



위의 표의 결과를 요약하면, IE, Chrome, Safari 브라우저 에서만 플러그인을 사용하고 있다고 할 수 있습니다.


그러면, 본격적으로 플러그인 설치 유무 확인 및 버전 확인 방법에 대해서 다뤄보겠습니다.




첫째,  웹 플러그인 설치 확인 방법입니다.



ActiveX


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var ActiveXPluginInfo = {
    Name: 'Hanwha_ACTIVEX.hanwha_activexCtrl.1',
    Version: 130,
    Path: 'plugin/PluginViewer.exe'
}
 
function ActiveXPlugInDetect(){
    try {
        var axObj = new ActiveXObject(ActiveXPluginInfo .Name);
 
        if(axObj){
            console.log("ActiveX is Detected");
            return true;
        } else {
            console.log("ActiveX isn't Detected");
            return false;
        }
    } catch (e) {
        console.log("ActiveX isn't Detected");
        return false;
    }
}
cs



NPAPI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var NPAPIPlugInInfo = {
    Name : 'Hanwha Viewer Plugin',
    Description : 'Hanwha Viewer plugin',
    Version: 130,
    Path: 'plugin/PluginViewer.pkg'
};
 
function NPAPIPlugInDetect(){
    var plugins = navigator.mimeTypes;
 
    for (var i=0; i< plugins.length; i++)
    {
        if (plugins[i].description === NPAPIPlugInInfo.Description)
        {
            console.log("NPAPI is Detected");
            return true;
        }
    }
    console.log("NPAPI isn't Detected");
    return false;
}
cs




두번째,  웹 플러그인 설치 버전 확인 방법 입니다.

전제 조건: Plug-In 에는 GetCurrentVersion()이라고 하는 버전확인 메소드가 존재합니다.



ActiveX / NPAPI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
var ActiveXPluginInfo = {
    Name: 'Hanwha_ACTIVEX.hanwha_activexCtrl.1',
    Version: 130,
    Path: 'plugin/PluginViewer.exe'
};
var NPAPIPlugInInfo = {
    Name : 'Hanwha Viewer Plugin',
    Description : 'Hanwha Viewer plugin',
    Version: 130,
    Path: 'plugin/PluginViewer.pkg'
};
 
function PlugInVersionCheck(PlugInObjectElement) {
 
    var InstalledPlugInVersion = PlugInObjectElement.GetCurrentVersion();
    console.log("Installed ActiveX Version : " + InstalledPlugInVersion);
 
    if(ClientBrowser === 'IE')
    {
        if(ActiveXPluginInfo.Version > InstalledPlugInVersion)
        {
            return false;
        }
    } else if(ClientBrowser === 'Safari' || ClientBrowser === 'Firefox')
    {
        if(NPAPIPlugInInfo.Version > InstalledPlugInVersion)
        {
            return false;
        }        
    }
 
    return true;
}
cs