2016-02-02 2 views
2

Я использую Appcelerator Studio.Как мы получаем токен устройства в iOS Appcelerator

Я хотел бы получить device token с iPhone. Я следую за документами Appcelerator, однако, когда приложение установлено, оно показывает мне предупреждение «вы хотите получать уведомления», а после щелчка на нем ничего не печатается на консоли.

Вот мой код:

var self = Titanium.UI.createWindow({ 
    backgroundColor : '#146FA6', 
    title : 'Menu', 
}); 
var deviceToken = null; 
// Check if the device is running iOS 8 or later 
if (Ti.Platform.name == "iPhone OS" && parseInt(Ti.Platform.version.split(".")[0]) >= 8) { 

    // 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 : function(e) { 
       var deviceToken = e.deviceToken; 
       alert(e.deviceToken); 
       Ti.API.info("Push notification device token is: " + deviceToken); 
       Ti.API.info("Push notification types: " + Titanium.Network.remoteNotificationTypes); 
       Ti.API.info("Push notification enabled: " + Titanium.Network.remoteNotificationsEnabled); 
      }, 
      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 iOS 7 and earlier 
else { 
    Ti.Network.registerForPushNotifications({ 
     // Specifies which notifications to receive 
     types : [Ti.Network.NOTIFICATION_TYPE_BADGE, Ti.Network.NOTIFICATION_TYPE_ALERT, Ti.Network.NOTIFICATION_TYPE_SOUND], 
     success : function(e) { 
      var deviceToken = e.deviceToken; 
      alert(deviceToken); 
      Ti.API.info("Push notification device token is: " + deviceToken); 
      Ti.API.info("Push notification types: " + Titanium.Network.remoteNotificationTypes); 
      Ti.API.info("Push notification enabled: " + Titanium.Network.remoteNotificationsEnabled); 
     }, 
     error : deviceTokenError, 
     callback : receivePush 
    }); 
} 
//deviceTokenSuccess(); 
// Process incoming push notifications 
function receivePush(e) { 
    alert('Received push: ' + JSON.stringify(e)); 
} 

function deviceTokenError(e) { 
    alert('Failed to register for push notifications! ' + e.error); 
} 

self.open(); 
+0

Вы используете симулятор или устройства? –

+0

Я использую device.iphone 5s OS (9.2.1) – SAK

ответ

1

Если LiveView включен, отключите его.

Есть некоторые известные конфликты при использовании LiveView и нажимные услуги уведомления

Чтобы отключить функцию LiveView с помощью Titanium студии, посмотрите на панель инструментов Appcelerator студии, как этот

enter image description here

дезактивировать первый элемент.

+0

как я могу отключить ListView – SAK

+0

Спасибо большое дорого ... он работает сейчас ..... :) – SAK

1

Код должен быть, как этот

var self = Titanium.UI.createWindow({ 
backgroundColor : '#146FA6', 
title : 'Menu', 
}); 

var deviceToken = null; 
// Check if the device is running iOS 8 or later 
if (Ti.Platform.name == "iPhone OS" &&   parseInt(Ti.Platform.version.split(".")[0]) >= 8) { 

// 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 iOS 7 and earlier 
else { 
Ti.Network.registerForPushNotifications({ 
    // Specifies which notifications to receive 
    types: [ 
     Ti.Network.NOTIFICATION_TYPE_BADGE, 
     Ti.Network.NOTIFICATION_TYPE_ALERT, 
     Ti.Network.NOTIFICATION_TYPE_SOUND 
    ], 
    success: deviceTokenSuccess, 
    error: deviceTokenError, 
    callback: receivePush 
}); 
} 
// Process incoming push notifications 
function receivePush(e) { 
alert('Received push: ' + JSON.stringify(e)); 
} 
// Save the device token for subsequent API calls 
function deviceTokenSuccess(e) { 
deviceToken = e.deviceToken; 
alert(deviceToken); 
Ti.API.info("Push notification device token is: " + deviceToken); 
Ti.API.info("Push notification types: " + Titanium.Network.remoteNotificationTypes); 
Ti.API.info("Push notification enabled: " + Titanium.Network.remoteNotificationsEnabled); 

} 
function deviceTokenError(e) { 
alert('Failed to register for push notifications! ' + e.error); 
} 
self.open(); 
+0

Спасибо дорогой ... :) – SAK

Смежные вопросы