检测是否从推送通知中打开了Appcelerator应用程序

时间:2017-01-04 18:44:19

标签: android ios appcelerator appcelerator-titanium appcelerator-mobile

我正在尝试通过点击推送通知来确定检测我的应用是否已打开的最佳方法。我在网上发现了一些不同的文章,提出了不同的方法,但似乎没有一个在应用程序平台和状态下以一致的方式工作。

是否有正式的Appcelerator方法来执行此操作?

1 个答案:

答案 0 :(得分:0)

是的,有正式方法。

if (Ti.Platform.getOsname() !== 'android') {

    // Wait for user settings to be registered before registering for push notifications
    Ti.App.iOS.addEventListener('usernotificationsettings', function registerForPush() {

        // Remove event listener once registered for push notifications
        Ti.App.iOS.removeEventListener('usernotificationsettings', registerForPush);

        Ti.Network.registerForPushNotifications({
            success: deviceTokenSuccess,
            error: deviceTokenError,
            callback: receivePush
        });
    });

    // Register notification types to use
    Ti.App.iOS.registerUserNotificationSettings({
        types: [
            Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT,
            Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND,
            Ti.App.iOS.USER_NOTIFICATION_TYPE_BADGE
        ]
    });
}
// For Android
else {
    var CloudPush = require('ti.cloudpush');
    var deviceToken = null;

// Initialize the module
    CloudPush.retrieveDeviceToken({
        success: deviceTokenSuccess,
        error: deviceTokenError
    });

    // Process incoming push notifications
    CloudPush.addEventListener('callback', function (evt) {
        receivePush(evt);
    });
}

// Process incoming push notifications
function receivePush(e) {
    // alert(e.data);
}