0
일부 Android 기기의 경우 앱을 처음 시작할 때 알림을 수신할지 묻는 메시지가 표시 될 때까지 내 Cordova 기반 앱이 충돌합니다. 여기에 일반적인 스택 트레이스는 다음과 같습니다앱이 코르도바에서 경고 메시지가 발생합니다.
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected]<i>[eight hex digits]</i> is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:535)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.Dialog.show(Dialog.java:241)
at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
at org.apache.cordova.Notification$2.run(Notification.java:245)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3806)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
자바 스크립트 코드 :
navigator.notification.confirm(
'Do you wish to receive push notifications?',
function(btnIndex) {
if (btnIndex == 1) {
push.enablePush();
localStorage.pushAsked = true;
} else {
push.disablePush();
localStorage.pushAsked = true;
}
},
'Push Notifications',
'Yes,No'
);
어떤 아이디어가? 어떤 기기 나 Android 버전이 영향을 받는지 모르지만 그 문제는보고 한 사람들에게 있습니다.
저는 Cordova 2.2.0을 사용하고 있습니다.
감사합니다. 한 가지 질문 : 하위 클래스가 대화 상자가 나타나지 않도록 가정 할 때 나는 맞습니까? 그 경우 나는 푸시 알림에 대해 사용자에게 프롬프트를 표시해야하기 때문에이를 해결할 방법이 필요합니다. – ToddD
예. 대화 상자를 취소합니다. 이 예외의 원인이되는 코드를 포함 할 수 있습니까? 그것은 당신의 활동이 왜 파괴되었는지 이해하는데 도움이 될 수 있습니다. – vanna
독점적 인 코드이기 때문에 실제로 그럴 수 없습니다. 하지만 푸시 알림 프롬프트를 기본 Java로 옮기고 적어도이 충돌을 제거했습니다. – ToddD