2016-02-02 38 views
2

我正在使用Appcelerator Studio。我想从iPhone获取device token。我正在关注Appcelerator文档,但是当安装它的应用程序向我显示“您是否希望收到通知”警报时,点击它之后,控制台中将不会显示任何内容。我们如何在iOS 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操作系统(9.2.1) – SAK

回答

1

如果启用了实时查看,禁用它。

有一些已知的冲突,使用实时视图和推送通知服务

时要使用钛工作室,看看你的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