이용안내

미니톡 이용과 관련된 도움말을 제공합니다.
플러그인 제작하기

플러그인 기본요소

/plugins/플러그인명/package.json 플러그인 정보 (필수)

/plugins/플러그인명/script.js 플러그인 기능이 담긴 스크립트파일 (필수)

/plugins/플러그인명/style.css 플러그인만의 스타일시트가 정의된 스타일시트파일 (필수)

/plugins/플러그인명/box.css 플러그인이 개인박스를 지원하는 경우, 해당 박스에서 사용될 스타일시트 (미니톡 채팅위젯 템플릿 스타일시트와 역할이 동일합니다.)



package.json 작성하기

{
  "id":"플러그인 고유 ID (영어소문자 및 숫자로 이루어진 도메인형태 / 예 : com.yourdomain.minitalk.plugin.uniquename)",
  "icon":"플러그인 관리에서 나타날 플러그인 아이콘 (XEIcon, FontAwesome v4.7 class 명 / 예 : xi xi-refresh)",
  "title":{
    "ko":"플러그인명(ko)"
  },
  "version":"버전정보(예 : 1.0.0)",
  "description":{
    "ko":"플러그인 관리에서 나타날 플러그인 설명"
  },
  "author":{
    "name":"개발자 성명",
    "email":"개발자 이메일주소"
  },
  "homepage":"개발자 홈페이지 주소 (지원)",
  "language":"플러그인 기본언어코드 (예 : ko)"
}


플러그인 아이콘의 경우 아래의 주소를 참고하여 클래스명을 찾을 수 있습니다.

XEIcon : http://xpressengine.github.io/XEIcon/library-1.0.4.html 

FontAwesome v4.7 : https://fontawesome.com/v4.7.0/icons/


플러그인명 및 플러그인 설명은 다양한 언어코드를 지원할 수 있습니다.

"언어코드":"해당 언어에 대한 플러그인명 또는 설명"

"title":{
  "ko":"플러그인명",
  "en":"PluginName"
}



script.js 파일 작성하기

플러그인 스크립트는 다른 플러그인이나 미니톡 요소에 영향을 주지 않도록 아래와 같이 기본적으로 샌드박싱되어 적용됩니다.

(function() {
  // script.js 에서 작성된 내용이 들어갑니다.
})();


script.js 파일은 내부적으로 자바스크립트 클래스처럼 동작하며, me 객체를 이용하여 플러그인 내부에 변수 및 함수를 정의한 뒤 사용할 수 있습니다.

또한 플러그인내 script.js 어디서든 Minitalk 변수를 이용하여 미니톡 객체 및 미니톡 내부 메소드에 접근할 수 있습니다.


/**
 * 이 파일은 미니톡 플러그인 예제의 일부입니다. (https://www.minitalk.io)
 *
 * @file /plugins/example/script.js
 * @author Arzz (arzz@arzz.com)
 * @license MIT License
 * @version 1.0.0
 * @modified 2021. 1. 21.
 */
if (Minitalk === undefined) return;

/**
 * 플러그인 내부변수 정의방법
 */
me.myValue = "hello world";

/**
 * 플러그인 내부함수 정의방법
 */
me.myFunction = function() {
  // me.myValue 를 출력한다.
  // Minitalk 변수를 이용하여, Minitalk 객체에 접근할 수 있다.
  Minitalk.ui.printSystem("info",me.myValue);
};

/**
 * 미니톡 이벤트 리스너 추가하기
 */
Minitalk.on("connect",function(minitalk) {
  me.myFunction();
});



미니톡 내부함수에 바로 접근할 경우, 객체정의가 완료되지 않은상태에서 적용될 수 있기 때문에, 가급적 init 이벤트를 이용하여, 미니톡 객체에 접근하는 것을 권장합니다.


/**
 * 미니톡 객체 및 메소드에 접근하기
 */
Minitalk.on("init",function(minitalk) {
  // 사용자 정의 프로토콜을 정의한다.
  minitalk.socket.setProtocol("myProtocol",function(minitalk,data,to,from) {
    console.log("myProtocol",data);
  });


  // 툴바에 버튼을 추가한다.
  minitalk.ui.appendTool({
    tool:"pluginTool",
    text:"pluginTool",
    iconCls:"xi xi-refresh",
    handler:function() { }
  });
});


플러그인 내부에서 미니톡 모든 객체 및 메소드에 접근가능하며 해당 객체나 메소드는 API문서를 참고하여 주십시오.


플러그인은 가급적 미니톡 클라이언트 v6.4 버전 이상 및 v7.0 이상에서 동작하는 것을 권장하며, 미니톡 클라이언트 버전에 따라 분기처리를 지원하기위해 Minitalk.version 변수에 미니톡 클라이언트 버전이 정의되어 있습니다.

버전이 x.yy.zz 인 경우 xyyzz 형태로 정의되며, v6.4.0 인 경우, 60400, v.7.10.5 인 경우 71005 형태로 정의되어 있습니다.

if (Minitalk.version < 70000) {
  // 미니톡 클라이언트 v7.0.0 미만에서 동작할 코드를 정의합니다.
}
최종수정일 :