2017-08-01 24 views
0

私はCordovaにとって非常に新しく、Urban Airshipプッシュ通知コンセプトを使用しています。フォアグラウンドでプッシュ通知を取得する必要があるような要件があります。しかし、私はバックグラウンドで通知を受けています。私は前景で通知を取得していません。Urban Airshipプッシュ通知がアムドロイドのForegroundに表示されない

function initPush(){ 
     //alert("Push initialize"); 
     console.log("Device ready!"); 
     var status = localStorage.getItem("pushEnable") 
     if(status == null){ 
      UAirship.setUserNotificationsEnabled(true); 
     }else{ 
       if (localStorage.getItem("pushEnable") == "true") { 
       // alert("SET USER NOTFICAION ENABLE "); 
       UAirship.setUserNotificationsEnabled(true); 
      } else { 
       // alert("SET USER NOTFICAION DISBALE "); 
       UAirship.setUserNotificationsEnabled(false) 
      } 
     } 
     localStorage.setItem("uuid", device.uuid); 
     //alert("DEVICE ID ==>"+device.uuid); 
     var onRegistration = function(event) { 
     // alert("ON REGISTRAION CALLED"); 
     window.plugins.spinnerDialog.show(null,"loading....", true); 
      if (!event.error) { 
      window.plugins.spinnerDialog.hide(); 
      // alert("ON REGISTRAION SUCESS"); 
       console.log("Reg Success:---> " + event.channelID) 
      // alert("ON REGISTRAION EVENT "+ JSON.stringify(event)); 
       var uuid = localStorage.getItem("uuid") 
       localStorage.setItem("channelId", event.channelID) 
       var deviceInfo = { 
        channel_id: event.channelID, 
        device_id: uuid 
       }; 
       UAirship.setNamedUser(uuid, function() { 
        //setNamedUser(uuid) 
        //alert("SETNAME SUCESS"); 
       }) 
      }else{ 
      window.plugins.spinnerDialog.hide(); 
      // alert("ON REGISTRAION FAILED"); 
      } 
     } 
     //alert(device.serial) 
     var onPushReceived = function(event) { 
     alert("ON PUSH RECEIVED CALL"); 
      if (event.message) { 
       dialogAlert("Message From LockerRoom", event.message) 
       alert("Message From LockerRoom", event.message) 
       console.log("Received push: " + event.message) 
      } else { 
       console.log("No incoming message") 
      } 
     } 
     // Notification opened callback 
     var notificationOpened = function(event) { 
      if (event.message) { 
       console.log("Notification opened: " + event.message) 
      } else { 
       console.log("No incoming message") 
      } 
     } 
     // Deep link callback 
     var handleDeepLink = function(event) { 
      console.log("Deep link: " + event.deepLink) 
     } 
     // Register for any urban airship events 
     document.addEventListener("urbanairship.registration", onRegistration, false) 
     document.addEventListener("urbanairship.push", onPushReceived, false) 
     document.addEventListener("urbanairship.notification_opened", notificationOpened, false) 
     document.addEventListener("urbanairship.deep_link", handleDeepLink, false) 
     // Handle resume 
     document.addEventListener("resume", function() { 
     // alert("Device resume!") 
      UAirship.resetBadge() 
      // Reregister for urbanairship events if they were removed in pause event 
      document.addEventListener("urbanairship.registration", onRegistration, false) 
      document.addEventListener("urbanairship.push", onPushReceived, false) 
     }, false) 
     // Handle pause 
     document.addEventListener("pause", function() { 
     // alert("Device Pause!") 
      // Remove urbanairship events. Important on android to not receive push in the background. 
      document.removeEventListener("urbanairship.registration", onRegistration, false) 
      document.removeEventListener("urbanairship.push", onPushReceived, false) 
     }, false) 
     // Get the launch notification if its available. 
     //this.receivedEvent('deviceready'); 
} 
    function initiateUI() { 
     //alert("InitUI"); 
     var struuid = localStorage.getItem("uuid") 
     $('#namedUser').text(struuid) 
     var setNamedUser = function(namedUser) { 
      document.getElementById("setNamedUserField").disabled = true; 
      var namedUser = $("#namedUser").val(struuid) 
      UAirship.setNamedUser(namedUser, function() { 
           setNamedUser(struuid) 
           }) 
      $("#namedUser").text(namedUser) 
     } 
     // Vibrate and Sound is only available on Android 
     if (device.platform != "Android") { 
      $("#soundEnabledSection").hide() 
      $("#vibrateEnabledSection").hide() 
     } 
     UAirship.getNamedUser(function(namedUser) { 
          //alert("getNamedUser--->" + getNamedUser); 
          if (namedUser) { 
          console.log("Got namedUser: " + namedUser) 
          setNamedUser(namedUser) 
          } 
          }) 
     // Update the interface with the current UA settings 
     //var isEnabled = localStorage.getItem("pushEnable"); 
     UAirship.isUserNotificationsEnabled(function(isEnabled) { 
             // alert("isUserNotificationsEnabled **(* ---- ENTER " + isEnabled); //0 - false 
              if (localStorage.getItem("pushEnable") == null) { 
              $('#pushEnabled').val(isEnabled ? 'on' : 'off').change() 
              } else if (localStorage.getItem("pushEnable") == "true") { 
              $('#pushEnabled').val('on').change(); 
     } else { 
              $('#pushEnabled').val('off').change(); 
     } 
     }) 
     // Set up change callbacks for the UI elements 
     $('#pushEnabled').change(function() { 
     var isEnabled = ($('#pushEnabled').val() == "on") 
     UAirship.setUserNotificationsEnabled(isEnabled) //TRUE FALSE 
     localStorage.setItem("pushEnable", isEnabled); // TRUE FALSE 
    }) 
} 

私は私がここで何をしたかのミスを知らない:
はここに私のコードです。誰でもこの問題を解決するのを助けてくれますか? ありがとうございます。

答えて

0

アンドロイドからのプッシュ通知は、アプリがフォアグラウンドにあるときにデフォルトでアラートとして通知します。 onPushReceivedイベントハンドラが直接呼び出されます。呼び出されたダイアログアラートが表示され、コンソールメッセージが表示されることがあります。

代わりに通知として表示する場合は、通知の送信中に"forceShow":"true"の値を使用します。ソースthis。 (私は都市部のプラグインのために働いているかどうかはわかりませんが、plsは私に知らせてください)。

とにかくコードバのために簡略化されています。 phonegap-push-pluginを使用できます。例hereを参照してください。

関連する問題