簡體   English   中英

離子推送通知:如何處理onClick?

[英]Ionic Push notification: How to handle onClick?

情況:

我在我的應用程序中使用Ionic Push通知

一切都很好。

當用戶發送消息時,通知將通過cURL請求觸發,並且僅當接收者關閉app或后台時才會到達。

我只是處理onClick回調的問題。

根據文檔,我將回調函數放在onNotification參數中。

“onNotification”:當您的設備收到通知並且收到通知對象時,將調用此函數。

當用戶點擊通知時,我需要做的是將他重定向到某個頁面。

這是工作。

問題是,當應用程序處於FOREGROUND狀態時,每次發出cURL請求時,用戶都將被重定向到該頁面...無論是否已收到通知(應用程序關閉或后台)(應用程序前景) ...

編碼:

.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);
        },

    });

問題:

如何設置一個回調函數,該函數僅在用戶實際點擊通知時被調用,而不是在他進入應用程序時?

我必須在onNotification中做一些技巧,或者有可能設置onClick回調?

謝謝!

解決方案:

好的,我使用AppStatus進行了AppStatus 通過檢查,我將僅在應用程序的狀態為asleepclosed應用重定向。

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

編碼:

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);
    },

    });

編輯:

現在,不推薦使用ionic-platform-web-client 您應該遷移到Ionic Cloud

使用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');
    }
});

我正在使用這種方法,它正在工作

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});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM