【问题标题】:Custom click on Ionic notification using Firebase使用 Firebase 自定义点击 Ionic 通知
【发布时间】:2017-05-01 21:37:00
【问题描述】:

我一直在使用 ionic 和 FCM(Firebase 云消息传递)进行通知。

我在我的应用程序上收到通知,现在我有 2 个问题。首先,如果它是一个普通的通知,比如 Firebase 控制台 > 通知 中没有高级选项,那么它不会播放任何声音,但是当它是数据通知时,它会播放声音。其次,我想在点击通知时打开我应用的特定页面。

那我该怎么做呢?

注意:我使用的是 ionic 而不是 ionic2。

【问题讨论】:

    标签: firebase ionic-framework push-notification firebase-cloud-messaging


    【解决方案1】:

    第一期: 我们在这两种情况下都有声音。您是否尝试发送空数据对象?

    第二期: 假设您使用 Cordova FCM 插件。否则安装它

    cordova plugin add cordova-plugin-fcm --save
    

    使用带有 ID 的数据到正确的数据页,然后执行以下操作:

    angular.module('app', ['ionic'])
    .run(function ($ionicPlatform) {
        $ionicPlatform.ready(function() {
            if(window.cordova) {
                FCMPlugin.onNotification(
                    function(data){
                        if(data.wasTapped){
                            //Notification was received on device tray and tapped by the user.
                            $state.go('yourpage', {id:data.pageId});
                            console.log('onNotification tapped true');
                        } else {
                            //Notification was received in foreground. User needs to be notified.
                            console.log('onNotification tapped false');
                        }
                    },
                    function(msg){
                        console.log('onNotification callback successfully registered: ' + msg);
                    },
                    function(err){
                        console.log('Error registering onNotification callback: ' + err);
                    }
                );
            }
        });
    });
    

    【讨论】:

    • 哦,那我应该把这段代码保存到 app.js 文件的哪里?
    • 例如在.run 内并且总是在latform 准备好之后。我用这个编辑了我的答案。
    • @jack_007 您可以将它们作为键/值对添加到 Firebase 控制台 > 通知 页面的高级选项标签中。例如 pageId 作为值,876 作为键。或者从网络服务添加"data": {"pageId": "876"} 到您的请求数据。当然,键名和值的选择取决于您。
    • @jack_007 并且 data.wasTapped 将由插件设置。输入这个,我意识到我可能假设您使用了 Cordova FCM 插件,但事实可能并非如此。我会将其添加到我的答案中。
    • @janP 在我的情况下,我总是收到 data.wasTapped=false
    猜你喜欢
    • 2018-03-22
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多