{ "id": "136078", "key": "TIMOB-17640", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "15972", "description": "Release 3.4.0", "name": "Release 3.4.0", "archived": false, "released": true, "releaseDate": "2014-09-28" }, { "id": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-09-15T16:11:37.000+0000", "created": "2014-09-03T23:34:06.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "ios8" ], "versions": [], "issuelinks": [ { "id": "41056", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "136510", "key": "NATIVESDK-292", "fields": { "summary": "iOS8: Enablement - If you enable for APS SDK, \"enabledRemoteNotificationTypes is not supported\" message appears in the console", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "41235", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "136721", "key": "TIMOB-17714", "fields": { "summary": "iOS8: registerForPushNotifications events do not fire, no token returned", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "41054", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "136507", "key": "MOD-1804", "fields": { "summary": "iOS8: ti.cloud: iOS Push - cannot enable the ti.cloud sample app", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "41061", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "136519", "key": "TIMOB-17690", "fields": { "summary": "iOS8: UrlSession - \"enabledRemoteNotificationTypes is not supported\" message appears if you require in the com.appcelerator.urlSession module", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "41020", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "136191", "key": "TIMOB-17647", "fields": { "summary": "iOS8: Access to currentUserNotificationSettings & didRegisterUserNotificationSettings", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "41021", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "136465", "key": "TIMOB-17683", "fields": { "summary": "iOS8: call registerUserNotificationSettings when Ti.Network.registerForPushNotifications() is called", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2014-11-21T20:30:20.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Returns a Boolean indicating whether the app is currently registered for remote notifications.\r\n\r\nAdd support for isRegisteredForRemoteNotifications so that the developer can check if the user has authorized notifications.\r\n\r\n{code}\r\nvar hasAuthorized = Ti.App.iOS.isRegisteredForRemoteNotifications();\r\nif(hasAuthorized) {\r\n\tTi.API.info(\"User has already authorized\");\r\n} else {\r\n\tTi.API.info(\"User needs to authorize, maybe ask them before the iOS rights dialog pops up\");\r\n}\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS8: Add isRegisteredForRemoteNotifications to determine whether the app is currently registered for remote notifications.", "creator": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 199, "state": "closed", "name": "2014 Sprint 18 SDK", "startDate": "2014-09-02T22:56:57.421Z", "endDate": "2014-09-13T00:00:00.000Z", "completeDate": "2014-09-15T20:08:19.146Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "321836", "author": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Added pull request https://github.com/appcelerator/titanium_mobile/pull/6018\r\n\r\nIngo mentioned AppC is now taking iOS8 PR. This ticket was created in associated with PR 6018.\r\n", "updateAuthor": { "name": "ben.bahrenburg@gmail.com", "key": "ben.bahrenburg@gmail.com", "displayName": "Ben Bahrenburg", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-09-04T16:15:50.000+0000", "updated": "2014-09-04T16:15:50.000+0000" }, { "id": "321842", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~mpmiranda], for iOS 8 tickets, add a label of \"ios8\" and make sure the summary _starts_ with iOS8 (no spaces)", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-09-04T16:48:26.000+0000", "updated": "2014-09-04T16:48:26.000+0000" }, { "id": "322380", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Jon, could you please take a look?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-09-08T22:07:57.000+0000", "updated": "2014-09-08T22:07:57.000+0000" }, { "id": "322943", "author": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR master: https://github.com/appcelerator/titanium_mobile/pull/6046\r\nPR 3_4_X: https://github.com/appcelerator/titanium_mobile/pull/6047\r\n\r\nThis ticket will resolve TIMOB-17647 please resolve it when these PRs are merged.\r\n\r\nh5. Test Code:\r\n{code}\r\n\r\nvar rows = [\r\n\t{\r\n\t\ttitle: 'remoteNotificationsEnabled',\r\n\t\tonClick: function(){\r\n\t\t\tlogInApp(\"remoteNotificationsEnabled: \" + Ti.Network.remoteNotificationsEnabled);\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\ttitle: 'remoteNotificationTypes',\r\n\t\tonClick: function(){\r\n\t\t\tlogInApp('remoteNotificationTypes: ' + JSON.stringify(Ti.Network.remoteNotificationTypes));\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\ttitle: 'currentUserNotificationSettings',\r\n\t\tonClick: function(){\r\n\t\t\t// iOS 8 +\r\n\t\t\tvar settings = Ti.App.iOS.currentUserNotificationSettings;\r\n\t\t\tlogUserNotificationSettings(settings);\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\ttitle: 'registerUserNotificationSettings',\r\n\t\tonClick: function(){\r\n\t\t\t// iOS 8 +\r\n\t\t\t// The following action launches the application in the foreground and requires the device to be unlocked\r\n\t\t\tvar acceptAction = Ti.App.iOS.createUserNotificationAction({\r\n\t\t\t identifier: \"ACCEPT_IDENTIFIER\",\r\n\t\t\t title: \"Accept\",\r\n\t\t\t activationMode: Ti.App.iOS.USER_NOTIFICATION_ACTIVATION_MODE_FOREGROUND,\r\n\t\t\t destructive: false,\r\n\t\t\t authenticationRequired: true\r\n\t\t\t});\r\n\r\n\t\t\tvar foregroundCategory = Ti.App.iOS.createUserNotificationCategory({\r\n\t\t\t\tidentifier: \"FOREGROUND_CATEGORY\",\r\n\t\t\t // The following actions will be displayed for an alert dialog\r\n\t\t\t\tactionsForDefaultContext: [acceptAction],\r\n\t\t\t // The following actions will be displayed for all other notifications\r\n\t\t\t\tactionsForMinimalContext: [acceptAction]\r\n\t\t\t});\r\n\r\n\t\t\tTi.App.iOS.registerUserNotificationSettings({\r\n\t \t\ttypes: [Ti.App.iOS.USER_NOTIFICATION_TYPE_ALERT,\r\n\t \t\t\t\t// Ti.App.iOS.USER_NOTIFICATION_TYPE_SOUND,\r\n\t \t\t\t\tTi.App.iOS.USER_NOTIFICATION_TYPE_BADGE],\r\n\t \t\tcategories: [foregroundCategory]\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\ttitle: 'registerForPushNotifications',\r\n\t\tonClick: function(){\r\n\t\t\tTi.Network.registerForPushNotifications({\r\n\t\t\t\tsuccess: function(e) {logInApp('success');},\r\n\t\t\t\terror: function(e) {logInApp('error');},\r\n\t\t\t\tcallback: function(e) {logInApp('callback');}\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\ttitle: 'unregisterForPushNotifications',\r\n\t\tonClick: function(){\r\n\t\t\tTi.Network.unregisterForPushNotifications();\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\ttitle: 'scheduleLocalNotification',\r\n\t\tonClick: function(){\r\n\t\t\tTi.App.iOS.scheduleLocalNotification({\r\n\t\t\t date: new Date(new Date().getTime() + 3000),\r\n\t\t\t alertBody: \"New content available! Download now?\",\r\n\t\t\t badge: 1,\r\n\t\t\t userInfo: {\"url\": \"http://www.download.com/resource/asset.json\"},\r\n\t\t\t category: \"FOREGROUND_CATEGORY\"\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n];\r\n\r\nfunction logInApp(text) {\r\n\ttextLog.value = textLog.value + '\\n' + text;\r\n}\r\n\r\nfunction logUserNotificationSettings(settings) {\r\n\tlogInApp('UserNotificationSettings: ');\r\n\tlogInApp('types: ' + JSON.stringify(settings.types));\r\n\tvar categories = [];\r\n\tfor (var i = 0, j = settings.categories.length; i < j; i++) {\r\n\t\tcategories.push(settings.categories[i].identifier);\r\n\t}\r\n\tlogInApp('categories: ' + JSON.stringify(categories));\r\n}\r\n\r\nTi.App.iOS.addEventListener('usernotificationsettings', function(e) {\r\n\tlogInApp('Event: usernotificationsettings');\r\n\tlogUserNotificationSettings(e);\r\n});\r\n\r\n////////////////////////////////////////////////////////\r\n// UI\r\n////////////////////////////////////////////////////////\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor: 'white'\r\n});\r\nwin.open();\r\n\r\nvar textLog = Ti.UI.createTextArea({\r\n\ttop: 0,\r\n\theight: '20%',\r\n\twidth: '100%',\r\n\tborderWidth: '2',\r\n\tborderColor: '#000',\r\n\tvalue: 'AppLog: see device log for more info'\r\n});\r\nwin.add(textLog);\r\n\r\nvar tableView = Ti.UI.createTableView({\r\n\ttop: '20%',\r\n\tdata: rows\r\n});\r\ntableView.addEventListener('click', function(e){\r\n\te.source.onClick && e.source.onClick();\r\n});\r\nwin.add(tableView);\r\n{code}", "updateAuthor": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-09-10T23:10:05.000+0000", "updated": "2014-09-12T20:03:46.000+0000" }, { "id": "323174", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "All, please see TIMOB-17683 as well. Thoughts appreciated.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-09-11T22:46:11.000+0000", "updated": "2014-09-11T22:46:11.000+0000" }, { "id": "323445", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR's merged", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-09-12T21:59:37.000+0000", "updated": "2014-09-12T21:59:37.000+0000" }, { "id": "324066", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-09-16T21:27:49.000+0000", "updated": "2014-09-16T21:27:49.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }