Android アプリケーションで奇妙な問題が発生しました。ここにあるGCMプラグインでJQuery MobileとCordova 2.4を使用しています: https://github.com/marknutter/GCM-Cordova
奇妙な点は、このコードが 4.2.2 を実行している私の Nexus 7 では完全に機能することですが、4.0.4 を実行している Trio Stealth Pro タブレットでは、コードはまったく機能しません。リクエストを行ったときに、GCM サーバーから登録 ID が返されません。
呼び出しを行う JavaScript コードは次のとおりです。
//cordova's deviceready callback
function onDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
//setup for GCM Messaging
userContext.deviceReady = true;
window.plugins.GCM.register(MY_PROJECT_NUMBER, "GCM_Event", GCM_Success, GCM_Fail);
}
//called from specified attribute in login.html <body onload="onLoad()">
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener("pause", function () {
unregisterGCM();
},
false);
}
アプリケーションの起動時にいくつかのエラーを受け取りますが、登録呼び出しを行った後、それらはまったく無関係に見えます。
"call to OpenGL ES API with no current context (logged once per thread)"
2 つのタブレット間でこのように異なる動作が発生するのはなぜですか?