###前提・実現したいこと
niftyのNCMBでプッシュ通知+ダイアログ表示させたい
###発生している問題・エラーメッセージ
ダイアログが表示されない
###MainActivity.java
Java
1package 省略 2 3public class MainActivity extends AppCompatActivity { 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 NCMB.initialize(this.getApplicationContext(),"1d921031cd2eafbb4bee9e8c1f4cb9fe6362aa60fed76b26ea5a45422a75322d","101d59e5407be5f96ea5d26d9e75b96f4f68dcb9ce5a716e83979e35e622b853"); 9 NCMBObject obj = new NCMBObject("TestClass"); 10 NCMBPush push = new NCMBPush(); 11 12 push.setDialog(true); 13 14// オブジェクトの値を設定 15 obj.put("message", "Hello, NCMB!"); 16 17// データストアへの登録 18 obj.saveInBackground(new DoneCallback() { 19 @Override 20 public void done(NCMBException e) { 21 if(e != null){ 22 //保存に失敗した場合の処理 23 Log.d("","ng"); 24 }else { 25 //保存に成功した場合の処理 26 Log.d("","ok"); 27 } 28 } 29 }); 30 31 final NCMBInstallation installation = NCMBInstallation.getCurrentInstallation(); 32 33//FCMからRegistrationIdを取得しinstallationに設定する 34 installation.getRegistrationIdInBackground("130067195225", new DoneCallback() { 35 @Override 36 public void done(NCMBException e) { 37 if (e == null) { 38 39 installation.put("test", "japan"); 40 installation.saveInBackground(new DoneCallback() { 41 @Override 42 public void done(NCMBException e) { 43 if(e == null){ 44 //保存成功 45 }else if(NCMBException.DUPLICATE_VALUE.equals(e.getCode())){ 46 //保存失敗 : registrationID重複 47 updateInstallation(installation); 48 }else { 49 //保存失敗 : その他 50 } 51 } 52 }); 53 } else { 54 //ID取得失敗 55 Log.d("","ng2"); 56 } 57 } 58 }); 59 // setContentView(R.layout.activity_main); 60 } 61 62 @Override 63 public void onResume() { 64 super.onResume(); 65 66 //リッチプッシュ通知の表示 67 NCMBPush.richPushHandler(this, getIntent()); 68 69 //リッチプッシュを再表示させたくない場合はintentからURLを削除します 70 getIntent().removeExtra("com.nifty.RichUrl"); 71 } 72 73 74 public static void updateInstallation(final NCMBInstallation installation) { 75 76 //installationクラスを検索するクエリの作成 77 NCMBQuery<NCMBInstallation> query = NCMBInstallation.getQuery(); 78 79 //同じRegistration IDをdeviceTokenフィールドに持つ端末情報を検索する 80 query.whereEqualTo("deviceToken", installation.getDeviceToken()); 81 82 //データストアの検索を実行 83 query.findInBackground(new FindCallback<NCMBInstallation>() { 84 @Override 85 public void done(List<NCMBInstallation> results, NCMBException e) { 86 87 //検索された端末情報のobjectIdを設定 88 installation.setObjectId(results.get(0).getObjectId()); 89 90 //端末情報を更新する 91 installation.saveInBackground(); 92 } 93 }); 94 } 95 96}
#MyCustumService.java
package com.example.innovation.test0224; import 省略 public class MyCustomService extends NCMBGcmListenerService { //ダイアログ表示の設定を保持する static NCMBDialogPushConfiguration dialogPushConfiguration = new NCMBDialogPushConfiguration(); @Override public void onMessageReceived(String from, Bundle data) { //ダイアログ表示のタイプを選択 dialogPushConfiguration.setDisplayType(NCMBDialogPushConfiguration.DIALOG_DISPLAY_DIALOG); //ダイアログ表示のハンドリング NCMBPush.dialogPushHandler(this, data, dialogPushConfiguration); } }
あなたの回答
tips
プレビュー