작성
·
142
1
window.plugins.OneSignal.setAppId();
위 코드 입력 시 화면이 black screen으로 표시됩니다.
하지만 onesignal 연동도 잘되고 푸시 메시지 발송되 잘 됩니다.
원인이 무엇일까요? android 구버전과 최신버전 모두에서 그렇습니다.
답변 2
1
안녕하세요. 답변이 늦었습니다.
답변을 자체 등록을 하셨는데요.
"setAppId 선언을 onDeviceReady 함수 내에서 하지 않고..." 라고 답변다신 내용과는 상관관계가 없습니다만, 해결되셨다고 하니~ 다행입니다.
함수를 바깥으로 빼서 호출는건 차이가 없는데~ 이상하네요. ^^;
참고로 제가 현재도 매주 1개이상씩 계속 원시그널을 사용해 앱을 만들고 있지만~ 말씀하신 오류가 발생한적이 한번도 없습니다.
아래처럼 플러그인 버전에 따른 구문오류일수도 있으니 참고부탁드립니다.
----------------------------------------------------------------------------------------
cordova 원시그널 플러그인의 최신버전은 현재 5.1.x 버전이며~
appid 설정의 초기코드는 아래입니다.
window.plugins.OneSignal.initialize("YOUR_ONESIGNAL_APP_ID");
이전 old버전의 초기코드는 아래이구요.(강의영상에는 아래로 적용되어 있을겁니다.)
window.plugins.OneSignal.setAppId("YOUR_ONESIGNAL_APP_ID");
터미널창에서 아래 명령어로 원시그널 플러그인 버전을 확인하시고~ 5.1.0 이상의 버전이라면 위내용 참고하시면 될것 같습니다.
cordova plugin ls
5.1.0 이상의 버전이라면 아래처럼 원시그널 document 가이드 페이지에 예제소스가 나오니 참고하시면 됩니다.
참고 url : https://documentation.onesignal.com/docs/ionic-capacitor-cordova-sdk-setup
1
setAppId 선언을 onDeviceReady 함수 내에서 하지 않고 별도 함수를 선언하여 호출하니 에러가 해결되네요....
같은 오류 있으신 분들 참고하세요 ㅠㅠ
document.addEventListener('deviceready', onDeviceReady, false);
var ref = '';
function onDeviceReady() {
var url = 'file:///android_asset/www/test.html';
OneSignalInit();
}
function OneSignalInit() {
window.plugins.OneSignal.setAppId('ㅇㅇㅇㅇㅇㅇ');
window.plugins.OneSignal.setNotificationOpenedHandler(function(jsonData) {
console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData));
});
window.plugins.OneSignal.promptForPushNotificationsWithUserResponse(function(accepted) {
console.log("User accepted notifications: " + accepted);
});
}