2016-08-25 28 views
12

SITUATION:イオンプッシュ通知:onClickの処理方法?

私は私のアプリでIonic Push notificationsを使用しています。

すべて正常です。

ユーザーがメッセージを送信すると、通知はcURL要求によって発生し、受信者がアプリをオフまたはバックグラウンドにしている場合にのみ到着します。

私はonClickコールバックの処理に問題があります。

documentationに続いて、コールバック関数をonNotificationパラメータに入れました。

「onNotificationメソッド」:この機能は、お使いのデバイス が通知を受信したときに呼び出され、受信した通知オブジェクト が提供されます。

私がする必要があることは、ユーザーが通知をクリックすると、特定のページにリダイレクトすることです。

効果があります。

問題は、アプリがFOREGROUNDにあると、通知が受信された(アプリがオフまたはバックグラウンド)かどうかにかかわらず、cURLリクエストが行われるたびにユーザーがそのページにリダイレクトされることです。ない(アプリのフォアグラウンド)...

CODE:

.run(function($ionicPlatform, $rootScope, $location, $state) { 

    $ionicPlatform.ready(function() { 

    var push = new Ionic.Push({ 

     "debug": true, 
     "onNotification": function(notification) 
     { 
      $rootScope.get_my_account_data(); 
      $location.path('app/chat'); 
     }, 
     "onRegister": function(data) 
     { 
      console.log(data.token); 
     }, 

    }); 

QUESTION:

ユーザーが実際に通知をクリックしたときだけ呼び出されるコールバック関数を設定できます。

私はonNotificationの中でいくつかのトリックをしなければなりませんか、またはonClickコールバックを設定する可能性がありますか?

ありがとうございました!

答えて

6

解決策:

私はAppStatusを使って管理しました。 これを確認することで、アプリケーションのステータスがasleepまたはclosedの場合にのみリダイレクトを適用します。

if (notification.app.asleep || notification.app.closed)

CODE:

var push = new Ionic.Push({ 

    "debug": true, 
    "onNotification": function(notification) 
    { 
     $rootScope.get_my_account_data(); 

     if (notification.app.asleep || notification.app.closed) 
     { 
      // the app was asleep or was closed, so do the redirect 
      $location.path('app/your_chat_page'); 
     } 

    }, 
    "onRegister": function(data) 
    { 
     console.log(data.token); 
    }, 

    }); 

EDIT:

今すぐionic-platform-web-clientが廃止されました。 Ionic Cloudに移行する必要があります。イオンクラウドいくつかの変更により

、今のコードは若干異なります。

$scope.$on('cloud:push:notification', function(event, data) 
{ 
    var msg = data.message; 

    if (msg.app.asleep || msg.app.closed) 
    { 
     // the app was asleep or was closed, so do the redirect 
     $location.path('app/your_chat_page'); 
    } 
}); 
+0

私はionic cloudを使用してionicframework v1でプッシュ通知の例を表示できますか? – talentedandrew

+0

私の答えには両方の例があります。詳細情報が必要な場合は、この2つのチュートリアルを参考にしてください:https://devdactic.com/ionic-push-notifications-guide/(すべてのものを設定する方法)http://docs.ionic.io/services/push/ (あなたがクラウドに関する通知のために必要なもの) – johnnyfittizio

+0

あなたの最初のリンクは、古いバージョンのものだと思います...彼らのドキュメントでは、彼らはイオンクラウドを使っています... – talentedandrew

1

私はこの方法で働いていますし、プッシュ

var push = PushNotification.init({ 
    android: { 
     senderID: "XXXXXXXXX" 
    }, 
    browser: { 
     pushServiceURL: 'http://push.api.phonegap.com/v1/push' 
    }, 
    ios: { 
     alert: "true", 
     badge: true, 
     sound: 'true' 
    }, 
    windows: {} 
}); 

2. push.on('notification', function(data) { 要求されたプッシュのために使用これを初期化し、

if (data.additionalData.link_url.indexOf('http')>-1){ 
$state.go('x',{x:x}); 
} 
のようにそれらを扱う1.first

を働いています

+0

だから基本的にあなたがonNotificationメソッド内部のことを管理されています。しかし、この場合は常に前景と背景の両方に適用されますか?私はバックグラウンドでしか必要としません。 – johnnyfittizio

関連する問題