2014-01-08 6 views
0

푸시 알림을 수신하기 위해 Cordova Android 앱을 개발 중입니다. Javascript 콜백이 실행되지 않는 것을 제외하면 앱에 문제가 없습니다. 예를 들어, 아래 코드에서 successHandler 또는 errorHandler는 실행해야하지만 그렇지 않습니다.Cordova Android 앱에서 Javascript 콜백이 실행되지 않음

function successHandler (result) { 
    alert('Success - ' + result); 
} 

function errorHandler (error) { 
    alert('Success - ' + result); 
} 

nNotification.register(successHandler, errorHandler, {"senderID":"abcdefghijklmnopn","ecb":"onNotificationGCM"}); 

같은이 웹보기 자바에서 보낸 다른 자바 스크립트 CIDE 마찬가지입니다 (onNotificationGCM있다.)

발사되는 자바에서 모든 자바 스크립트 원산지를 방지 할 수있는 것을

?

+0

당신이 실제 장치에서 테스트 마십시오 successHandler 기능에 등록 successCallback을 얻을 것이다. 에뮬레이터 (오류)에서는 Google 서비스가 포함되어 있지 않으므로 GCM을 사용할 수 없습니다. –

+0

예, 실제 장치에서 테스트 중이며 에뮬레이터를 사용하지 않습니다. –

+0

장치 준비 완료 및 플러그인 가져 오기가 올바 릅니까? 모두 맞으면 NotificationGCM 함수에 게시 할 수 있습니다. onNotificationGCM이 윈도우 객체의 전역 함수인지 확인하십시오. –

답변

0

GCM에 succesfull 등록 후에는 onNotificationGCM 기능

에 콜백을 얻을 것이다 ({ "abcdefghijklmnopn", "ECB": "센더" "onNotificationGCM"}) 그래서, 추가

window. onNotificationGCM = function(msg){ 
    alert(JSON.stringify(msg)) 

} 

콜백을 받으면 GCM 등록에 실패하면 콜백이 발생하지 않습니다. 당신이 successHandler 기능에 콜백을받을 필요가있는 경우

당신은

PushPlugin.sendOnregisterSuccess(json);

2 PushPlugin.sendJavascript(json);

을 대체 일부 자바 파일

1.GCMBaseIntentService.java을 편집해야합니다. PushPlugin.java

는 하나 개의 공용 변수

public static CallbackContext cal= null; 

내부
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) 

기능

cal = callbackContext; 

를 추가하고 내부에 새로운 개인 기능을 추가 PushPlugin 클래스를 추가

public static void sendOnregisterSuccess(JSONObject _json) { 
     //String _d = "javascript:" + gECB + "(" + _json.toString() + ")"; 
     //Log.v(TAG, "sendJavascript: " + _d); 
     cal.success(_json); 

    } 

이제

관련 문제