Cordova2021. 3. 17. 10:39

1. 코도바내 플랫폼 폴더(platforms)를 삭제 또는 폴더 이름 변경

 

2. 플랫폼을 다시 추가 

 

cordova platform add android 

cordova platform add ios 

'Cordova' 카테고리의 다른 글

Cordova Onsignal Push Javascript Sample Code  (0) 2021.03.17
Posted by 마이즐
Cordova2021. 3. 17. 10:37

<html>



<script>

//푸시전송내용 설정
function push_test() {

// 변수 선언부(아래 변수는 원하는 서비스구성에 맞게 수정하여 사용)
var push_title = 'test title'; // 푸시제목
var push_content = 'push message'; // 푸시 내용
var push_target = '1'; // 푸시 타겟 설정 1: 전체, 2: 특정대상자
var push_url = 'http://m.naver.com'; // 푸시 이동 URL(필요시 사용하며, url없을시 비워두며, 기본으로 그냥 서비스메인화면이 열리게 됨.)
var img_url = 'http://hrdstory.com/hrdstory/img/program/teamwork.jpg'; //푸시이미지 : 필요시 지정하며 안보낼시 값을 비워두면 됨.
// 푸시가 오면 이미지가 같이 표시가 됨.
// image url 이미지 push사용시, 이미지 권장비율 = 가로:세로 2:1비율 최소 - 512x256p 보통 - 1024x512px 최대 - 2048x1024px
// 안드로이드용(아이폰에선 이미지 표시가 안됨)


//푸시 URL 변수설정(푸시메세지에 이동될 url을 포함하는경우)
if (push_url.length == 0) {
var data_param = {};
} else {
var data_param = {
'custom_url': push_url
};
}


// 푸시 발송 대상자 지정(발신대상자 지정구문 수정하여 사용)
var player_id_array = new Array(); //푸시수신대상자의 푸시키(푸시id)를 저장할 배열변수

if (push_target.toString() == '2') { // push이 1이면 전체대상 푸시전송, 2이면 특정 대상자 전송
//특정 대상자 전송이라면

/*
1.한사람에게만 보내는경우
- 아래 2번이나 1번중 하나만 사용해야함.
- 간단하게 무조건 한사람에 보내는경우면 그 사용자의 푸시키를 미리 알아내고 아래처럼 push_id에 지정하여 푸시발신한다.

*/
var push_id = '1111111111-956f-4215-9b40-6452fcbe6c2c'; // 푸시id (푸시 수신 대상자) => 한사람에게 보내는경우
var push_target_all = ''; //전체푸시발신용 변수는 비움.

player_id_array.push(push_id); // 특정사용자 배열변수에 추가. 대상자가 여러명이면 아래처럼 jquery ajax구문으로 대상자의 푸시키를 가져와 넣어주면됨.
Push_Send(data_param, push_target_all, player_id_array, img_url, push_title, push_content); // 푸시 전송함수


/*
2.여러사람에게 동시에 보내는경우
- 위 1번이나 2번중 하나만 사용해야함.
- 아래는 ajax로 서버에서 대상자의 푸시아이디를 가져와 대상자로 지정할수 있도록 배열변수에 푸시아이디를 저장하는 샘플 코드입니다.
서버쪽 코드는 직접 웹개발자분이 구현해주셔야 합니다.(json으로 푸시아이디를 뿌려주는 로직구현)

*/

//대상자의 푸시아이디를 DB에서 가져올 조건변수 세팅(옵션으로 변수를 넘겨줄 필요시 사용함)
var param_data = {
aaa: '1111',
bbb: '222'
}


//서버페이지명(푸시아이디를 서버에서 가져올 url)
var str_url = 'get_pushid.php';

$.ajax({
type: "post",
dataType: "json", //리턴값은 json타입으로{push_id:{}}
corssDomain: true,
url: str_url,
data: param_data,
success: function (data) {
//푸시아이디가 data라는 변수로 리턴됨.(서버에서 json 타입으로 뿌려줌.)

//대상자가 여러명인경우 json타입으로 변수명은 push_id 로 여러값을 지정되게 하고, 아래처럼 for문을 통해 값을 가져와 배열변수에 넣음.
for (i = 0; i < data.push_id.length; i++) {

//대상자가 여러사람인경우 for문을 돌며 player_id_array 변수에 푸시id가 저장됨.
player_id_array.push(data.push_id[i]);
}

Push_Send(data_param, push_target_all, player_id_array, img_url, push_title, push_content); // 푸시 전송함수
},
error: function (xhr, status, error) {

}
});



} else {

// 전체 대상자 발신이라면
var player_id_array = new Array();
var push_target_all = ['All'];
Push_Send(data_param, push_target_all, player_id_array, img_url, push_title, push_content); // 푸시 전송함수
}

}



// 푸시 전송 함수(아래 함수는 수정할 부분이 없이 그대로 사용)
function Push_Send(data_param, push_target_all, player_id_array, img_url, push_title, push_content) {

var app_id = "0000000000-8fee-48b7-84e6-6422b38903e6"; //고정값 => 이값은 나중에 푸시기능적용후 확인가능합니다.
var restapi_key = "00000000y00NjQxLTliZTQtZDBjOGQ1MWI3YzI4"; //고정값 => 이값은 나중에 푸시기능적용후 확인가능합니다.

var big_picture = "";
if (img_url.length > 5) {
big_picture = img_url; // 이미지푸시값 있을 경우
}

$.ajax({
url: 'https://onesignal.com/api/v1/notifications',
type: 'POST',
dataType: "json",

data: {
"app_id": app_id,
"included_segments": push_target_all, //전체사용자에게 푸시발송, *iclude_segments or include_player_ids 둘중 하나만 사용가능.
//"include_player_ids": player_id_array,
"headings": {
"en": push_title
}, //푸시 타이틀
"contents": {
"en": push_content
}, //푸시 내용
"data": data_param,
"large_icon": "icon_96", //표시 icon 아이콘 이름과 맞춰야 합니다. /Users/yellowin/workspace/work_pack/work_hello/platforms/android/app/src/main/res/drawable/
"small_icon": "icon_48", //상태바 표시 icon 아이콘 이름과 맞춰야 합니다.
"big_picture": big_picture //안드로이드 푸시 이미지 => http url
//,"ios_attachments": {
// "id1": big_picture
//} //iOS 푸시 이미지(iOS에서는 OS버전업이 되면서 이미지 처리가 되지 않고 있습니다.)
,"ios_badgeType": "Increase", //ios badge counter
"ios_badgeCount": 1 //ios badge counter by 1

},
beforeSend: function (xhr) {

xhr.setRequestHeader("Authorization", "Basic " + restapi_key);
},
success: function (response) {

//alert('푸시가 발송되었습니다.');
console.log(JSON.stringify(response));
},
error: function (xhr) {
//alert('오류가 발생했습니다.\n\nerror : ' + JSON.stringify(xhr));

}
});

}
</script>


<body>
<button id="button1" onclick="push_test();">푸시 발신하기 </button>

</body>

</html>

'Cordova' 카테고리의 다른 글

No Java files found that extend CordovaActivity 해결  (0) 2021.03.17
Posted by 마이즐