前提・実現したいこと
MonacaでNIFCloudMBを使用してのプッシュ通知を実装したいと思います。
発生している問題・エラーメッセージ
window.NCMBオブジェクトが生成されません。
該当のソースコード
javascript
ソースコード
document.addEventListener("deviceready", function(){
pushIni();
},false);
function pushIni(){
if(window.NCMB){
// プッシュ通知受信時のコールバックを登録します
window.NCMB.monaca.setHandler
(
function(jsonData){
// 送信時に指定したJSONが引数として渡されます
alert("callback :::" + JSON.stringify(jsonData));
}
);
var successCallback = function () { //端末登録後の処理 }; var errorCallback = function (err) { //端末登録でエラーが発生した場合の処理 }; // デバイストークンを取得してinstallation登録が行われます // ※ YOUR_APPLICATION_KEY,YOUR_CLIENT_KEYはニフクラ mobile backendから発行されたAPIキーに書き換えてください window.NCMB.monaca.setDeviceToken( "YOUR_APPLICATION_KEY", "YOUR_CLIENT_KEY", successCallback, errorCallback ); // 開封通知登録の設定 // trueを設定すると、開封通知を行う window.NCMB.monaca.setReceiptStatus(true); alert("DeviceToken is registed"); }else{ setTimeout(pushIni,1000); console.log("try"); }
}
試したこと
ソース自体はWEBで探したサンプルコードほとんどそのままです。
1.まず最初にMonacaBackendでプッシュ通知を実装しました。あっさり動いたのですが着信時に音が出ないことや、プラナップしないとAPIが使えないなどの理由からニフサブに実装を変更することにしました。MonacaBackendeで動作確認が取れたことから、apple developerでの登録は問題ないと推測しています。
2.まずはWEBで見つけたサンプルを元にざっと実装して見ました。ですがカスタムビルドデバッガーで見るとエラーを吐いていました。
TypeError:undefined is not an object(evaluating 'window.NCMB.monaca)
3.あちこち記事を探して見ましたが、古い記事にオブジェクトはすぐに生成されるとは限らないので、時間をおいてなんども試せとあったので上記のソースに書き換えました。window.NCMBオブジェクトがなければ1秒待って再実行するようにです。その際、consoleにtryと書き出すようにしました。
4.結果はtryがずーっと並び、一向にwindow.NCMBが生成されないようです。
5.記事が古かったのでもしやと思い、NIFCloudMBを最新の3.xxから2.xxに変更して見ましたが、状況は変わりません。
補足情報(FW/ツールのバージョンなど)
monaca:PROプラン
mobile backend:無料プラン
iPhone SE
ios:13.3.1
実際にはYOUR_APPLICATION_KEY,YOUR_CLIENT_KEYはそれぞれ自分のものを記述しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。