XE 공식 자료실

제작자
단희아빠
등록일
2015-04-16
다운로드 수
211
링크1
xepushapp.com

새 글과 새 댓글을 알림받는 안드로이드 푸시 앱을 직접 만들어보세요.

초보자도 쉽게 만들 수 있도록 완벽가이드, 앱 소스가 제공되며,

이 모듈을 통해서 xe 홈페이지와 연동되는 GCM 안드로이드 푸시 앱을 사용할 수 있습니다.

라이선스
GPL v2
설치경로
./modules/androidpushapp
최초 등록일
2015-04-09
전체 다운로드
5,998

상세 설명

새글 새댓글을 알려주는 푸시 앱을 연결시켜주는 모듈입니다. 

이 모듈을 사용하시기 위해서는 안드로이드 푸시 앱을 직접 제작하셔야 합니다.

그러나 첨부파일 안에 안드로이드 앱을 만들기 위한 완벽 가이드와 앱 소스가 제공되니 걱정 안하셔도 됩니다. 

초보자들도 따라하시면 쉽게 안드로이드 앱을 뚝딱 만드실 수 있습니다.

 

1) 앱 실행시 곧바로 모바일 페이지로 링크됨. 웹뷰 방식이 아니라, 폰 자체의 브라우저를 호출하여 모바일 페이지 링크하는 방식이기 때문에 첨부파일 등의 문제가 없음.

2) 새글, 새로운 댓글, 쪽지 푸시 알림 서비스(쪽지의 경우는 커뮤니케이션 모듈이 활성화되어 있어야 합니다)

3) 모바일 페이지에서 알림여부(새글, 댓글, 쪽지, 소리, 진동) 설정 가능 / 자신이 쓴 글의 댓글이나 자신이 댓글을 단 글에 새댓글이 달렸을 경우에만 알림 되도록 설정 가능 / 앱을 설치하지 않은 사람이 알림설정을 누를 경우 자동으로 구글 플레이에 접속되어 앱 설치를 유도.

4) 푸시 알림 서비스를 제외할 게시판 설정 가능

5) reg_id 자동 정리 및 발송 결과 모듈 관리자 페이지에서 확인할 수 있도록 함. 앱을 삭제하였거나 재설치하였을 때 있게 되는 없는 reg_id와 중복 reg_id 삭제 처리

6) 등록기기 동기화 여부 목록 확인 가능

7) 정상작동 여부 확인을 위한 관리자용 테스트 발송기능(기기를 관리자 아이뒤로 동기화해야 합니다)

8) 자신이 쓴 글이나 댓글은 알림이 되지 않음

 

단 자신이 쓴 글의 댓글이나 새댓글이 달렸을 경우에만 알림이 되도록 하려면 로그인 한 후 설정 화면에서 회원 동기화 버튼을 누르셔야 합니다.

 

*********************** 가이드가 pdf 파일이라 중간에 자동줄바꾸기로 인해서 소스가 끊겨서 에러가 좀 있는 것 같습니다. 19번 레이아웃 수정부분에서 아래의 부분의 공란을 없애주세요.

 

"intent://Setting?member_srl={$logged_info->member_srl}&nick_name={$logged_info->nick_name}#Intent;scheme=

example;package=com.domain.example;end";

두 부분으로 나누어진 것을 아래와 같이 두 문장을 연결해주세요

"intent://Setting?member_srl={$logged_info->member_srl}&nick_name={$logged_info->nick_name}#Intent;scheme=example;package=com.domain.example;end";

 

************************** 설정 부분도 수정해야 할 필요가 있습니다. 모듈/tpl/Config.html 파일의 아래 부분을 수정해주세요.

 

<div class="x_control-group">
   <label class="x_control-label">글/댓글 푸시 사용여부</label>
   <div class="x_controls">
    <p class="x_help-block">선택한 것만 푸시합니다.</p>
    <label>
     <input type="checkbox" value="Y" name="use_d" checked="checked"|cond="$config->use_d == 'Y'" />
     글<br>
     <input type="checkbox" value="Y" name="use_c" checked="checked"|cond="$config->use_c == 'Y'" />
     댓글<br>
     <input type="checkbox" value="N" name="use_m" checked="checked"|cond="$config->use_m == 'Y'" />
     쪽지(커뮤니케이션 모듈과 애드온이 활성화되어 있어야 합니다)
    </label>
 
   </div>

 

이 부분을 아래의 부분으로 바꾸어주세요.

 

<div class="x_control-group"><label class="x_control-label">새글 푸시 동작여부</label>
  <div class="x_controls"> <label class="x_inline"> <input type="radio" name="use_d" value="Y" checked="checked"|cond="$config->use_d == 'Y'" /> 동작 </label>
  <label class="x_inline"> <input type="radio" name="use_d" value="N" checked="checked"|cond="$config->use_d == 'N'" /> 동작 안 함 </label>
  </div>
  </div>
  <div class="x_control-group"> <label class="x_control-label">새 댓글 푸시 동작여부</label>
  <div class="x_controls"> <label class="x_inline"> <input type="radio" name="use_c" value="Y" checked="checked"|cond="$config->use_c == 'Y'" /> 동작 </label>
  <label class="x_inline"> <input type="radio" name="use_c" value="N" checked="checked"|cond="$config->use_c == 'N'" /> 동작 안 함 </label>
  </div>
  </div>
  <div class="x_control-group"> <label class="x_control-label">쪽지 푸시 동작여부</label>
  <div class="x_controls"> <label class="x_inline"> <input type="radio" name="use_m" value="Y" checked="checked"|cond="$config->use_m == 'Y'" /> 동작 </label>
  <label class="x_inline"> <input type="radio" name="use_m" value="N" checked="checked"|cond="$config->use_m == 'N'" /> 동작 안 함 (커뮤니케이션 모듈과 애드온이 활성화 되어 있어야 합니다.) </label>
  </div>
  </div>

 

가이드에 제시된 안드로이드 앱의 특징.

일반적으로 앱은 네이티브 앱과 하이브리드 앱으로 나뉘는데, 네이티브 앱은 자바 언어로 일일이 다 타이프해서 만든 앱을 말하고, 하이브리드는 네이티브 기반이면서 동시에 웹을 기반으로 하고 있는 앱입니다. 하이브리드는 모바일 웹을 앱 자체의 웹뷰기능으로 보여주는 앱이라고 생각됩니다. 대표적인 하이브리드 앱이 바로 네이버, 다음 앱들이 모두 하이브리드 앱이죠.

그런데 하이브리드 앱의 웹뷰 기능에는 첨부파일기능이나 종료기능, 그리고 보안에 있어서 문제가 있기 때문에 이런 부분들을 보완하기 위해서 소스가 복잡해지는 것이 불가피합니다. 저는 차라리 폰 안에 내장된 기본 브라우저 또는 뛰어난 기능의 하이브리드 앱인 네이버나 구글, 다음 앱을 호출하여 홈페이지 링크만 시켜주는 것이 더 낳다고 생각했습니다.

가이드에 제시된 앱은 네이티브 앱으로서 GCM 푸시 기능을 백그라운드에서 실행하면서 처음 앱을 실행할 때와 알림설정할 때에만 호출되는 앱입니다. 

 

가이드를 따라서 앱을 만드실 때 주의사항...

붙여넣기 하시면 빨간색으로 도배가 되는데, 빨간색 주변에 커서를 놓고 기다리면 파란 메시지가 뜹니다. 그때 ALT+ENTER를 눌러주시면 빨간줄이 없어집니다.

기존에 1.0,1.1로 작업하신 분들은 기존의 프로젝트를 수정하지 마시고, 똑같은 이름의 프로젝트명으로 새로운 프로젝트를 만들어 전체적으로 새로 작업하시는 것이 훨씬 좋습니다. 혹시 모든 작업을 완료했는데도 작동이 되지 않으면, 관리자 페이지에서 캐시파일재생성 한번 해주시거나 또는 phpmyadmin에 들어가셔서 기존에 있던 DB table xe_androidpushapp_gcmregid 테이블을 백업하신뒤에 삭제하시고 나서 다시 이 모듈을 설치하실 것을 추천드립니다.

 

테스트를 충분히 거쳤기 때문에 1.0이나 1.1과 같이 치명적인 오류들은 없을 것으로 생각되지만, 세세한 부분에서 약간의 오류들이 있을 수 있습니다. 그 부분은 꼭 알려주셔서 함께 수정해나갔으면 합니다. 그리고 차후에 푸시 기능에 있어서 더 나은 기능들이나 대대적인 업그레이드에 대한 계획이 없습니다. (제가 좀 바빠서...^^)

 

-----1.2 버전 수정 사항

전체적인 보완작업, 버그 수정

관리자 테스트 발송기능 추가

  

------ 1.1 버전 수정 사항

가이드 오류 수정

회원동기화 기능 추가

자신이 쓴 글의 댓글만 알림받는 기능 추가

등록기기 관리자 페이지에서 확인 가능

쪽지 알림 기능 추가

 

1.0버전으로 작업을 완료하신 분들은 모듈을 ftp로 업로드 하셔서 업그레이드 하시면 되고, 앱 제작은 죄송하지만 처음부터 다시 새로 작업해주시기 바랍니다.

---------------------

이 모듈을 사용하시려면 최신버전 xe로 업그레이드 하실 것을 권해드립니다. 1.7.13에서 테스트 해보았고 다른 버전에서는 테스트 해보지 않았습니다.

이전에 XE 팁에서 가이드를 올려놓았었는데, 자체 모듈을 제작하여 가이드와 함께 배포하게 되었습니다.

XE 알림센터 소스를 상당부분 참조하여 제작하였고, 이 모듈의 수정 배포 전적으로 자유입니다. 

아래의 그림과 같이 앱을 실행하면 모바일페이지로 바로 연결이 되면 싸이트 상단에 설정버튼이 있는데, 이것을 누르면 그 다음 사진과 같이 알림 설정화면이 나오게 됩니다.

 

 

 

 

 

 

 

 

아무쪼록 홈페이지 운영에 큰 도움에 되었으면 하는 바램입니다.

 

 

포럼 29

로그인 후 작성할 수 있습니다.
  • 2015-04-24 06:03:48 제작자 단희아빠

    config.html의 55줄쯤에 있는 </div>는 오류이니 삭제해주시고, 앱상에서 줄바꿈은 안드로이드 스튜디오 자체에서 알아서 인식하기 때문에 큰 문제는 없을 것이라고 생각됩니다.

    다만 이 외에도 몇가지 오류가 있고, 특히 모듈의 스키마 파일의 인코딩이 ANSI로 되어 있어서 DB작동이 안되는 오류가 있기 때문에 1.3버전이 곧 업로드되니 1.3버전으로 설치해주시기 바랍니다. 만일 이미 1.2버전을 설치하셨다면, 일단 테스트 해보시고 안 될시에는 phpmyadmin을 통해서 xe_androidpushapp_gcmregid 테이블을 삭제해주시고 나서 1.3버전을 재설치해주시기 바랍니다. 자꾸 오류가 있어서 죄송해요...

  • 2015-04-23 17:12:15 JinkPark

    위 설명에 있는 레이아웃 소스면 주의 하면 되는건가요..
    앱소스에서도 줄 바뀜이 된것처럼 보이는 것들이 몇개 보이던데 무시 해도 되는지요...
    궁금해서 문의 남깁니다.
    소스관련해서 제가 잘 몰라서 그런것이니 양해 바랍니다.
    감사합니다.

  • 2015-04-22 19:33:20 제작자 단희아빠

    1.3버전이 심사중에 있습니다 곧 업데이트 되니 1.3버전으로 재설치 해주시면됩니디

  • 2015-04-22 18:15:29 JinkPark

    모듈/tpl/Config.html 수정을 하게 되면 원소스에서 55줄쯤에 있는 </div> 태그는 어떻케 해야하나요

  • 2015-04-22 10:38:06 제작자 단희아빠

    충분히 가능합니다. 웹뷰 기능을 이용하면 아주 쉽게 만들 수 있는데, 다만 첨부파일 기능을 위해 소스가 복잡해져야 합니다. 그부분은 구글에서 검색하시면 쉽게 소스를 찾을 수 있습니다.

  • 2015-04-22 09:13:20 마우스준144d7

    다시 해 보니 잘 됩니다. ^^ 그런데 그냥 앱 자체로 해도 해도 될거 같은데요.. 앱 안에서 모바일 페이지도 보고 푸시가 오면 메세지를 누르면 앱이 실행되고 ... 이렇게 하는 방법이 있나요 ? 관련 자료나 등등.. 있으시면 알려주시면 감사하겠습니다. ^^

  • 2015-04-21 12:12:14 제작자 단희아빠

    스키마 파일들 인코딩을 utf-8로 바꾸어주시고 db 테이블 삭제후 재설치해주세요

  • 2015-04-20 18:15:04 제작자 단희아빠

    몇가지오류가 발견되어서 수정본을 곧 다시 올리겠습니다

  • 2015-04-20 07:34:14 제작자 단희아빠

    등록기기 목록에는 앱을 설치한 사람의 스마트폰 고유 id가 저장됩니다. id가 저장되어 있어야만 그 id를 가지고서 google GCM 서버에 요청해서 푸시알림을 보내게 되지요. 그런데 앱을 설치했는데도 등록기기 목록이 비어있다는 이야기는 reg_id가 등록이 안된다는 말입니다. 제 생각에는 두 가지 가능성이 있습니다. 첫째는 reg_id를 웹서버로 전송하는 앱 소스 자체의 문제(Main_Activity.java)이거나 둘째는 서버 자체의 문제일 수 있습니다. 일단 pc의 인터넷상에서 url에 http://홈페이지 주소/?act=procAndroidpushappRegIn&reg_id=test 를 입력하신 후에 엔터를 누르시고 관리자 페이지에서 등록기기 목록에 test 가 등록되어 있는지 확인해주세요. 만일 없다면, 서버 자체의 문제입니다. 이 경우는 관리자 페이지에서 캐시파일 재생성을 해주시던지, 본 모듈을 삭제하셨다가(phpmyadmin에서 DB도 삭제해야 함) 다시 설치해주시고, 그래도 안 되면, 그것은 서버설정에 문제가 있는 것입니다. 보안 문제로 서버에서 무작위 DB 접근금지를 위해 제한을 두는 경우가 있는데, 그것을 해제 해달라고 요청하셔야 합니다.
    위의 경우가 아니라면 앱소스의 문제인데, 다시한번 수정을 올바로 하셨는지 확인해보시고, 문제가 없다면 새프로젝트로 새로 작업하시는 것이 좋을 듯 쉽습니다.

  • 2015-04-19 21:27:31 마우스준144d7

    구현을 했는데.. 안드로이드 앱도 에러가 안나고.. 문제가 없는데.. 푸시가 안옵니다. ㅠㅠ 푸시 결과값 목록에는 기록이 되구요.. 등록 기기 목록에는 없는데..등록 기기 목록에도 무슨 데이터가 기록이 되나요 ? ㅠㅠ