Skip to content
This repository was archived by the owner on Feb 7, 2019. It is now read-only.

Commit 87c48ac

Browse files
authored
Merge pull request #54 from NativeScript/adobrev/ios10-target-compatibility
Fixes iOS 10 build target runtime exception
2 parents 5b2c670 + 8d59419 commit 87c48ac

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name" : "nativescript-push-notifications",
3-
"version": "0.0.17",
3+
"version": "0.0.18",
44
"main" : "push-plugin.js",
55
"repository": {
66
"type": "git",
@@ -9,8 +9,8 @@
99
"license": "Apache-2.0",
1010
"nativescript": {
1111
"platforms": {
12-
"ios": "1.0.0",
13-
"android": "1.0.0"
12+
"ios": "2.3.0",
13+
"android": "2.3.0"
1414
}
1515
}
1616
}

push-plugin.ios.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = (function() {
22

3+
var iosApp = require('application').ios;
34
var pushHandler;
45
var pushManager
56

@@ -21,8 +22,6 @@ module.exports = (function() {
2122
this.settings = settings;
2223
this.notificationCallbackIOS = settings.notificationCallbackIOS;
2324

24-
this.notificationCenter = NSNotificationCenter.defaultCenter();
25-
2625
// subscribe to the notification received event.
2726
this._addObserver("notificationReceived", function(context) {
2827
var userInfo = JSON.parse(context.userInfo.objectForKey('message'));
@@ -37,7 +36,7 @@ module.exports = (function() {
3736
var self = this;
3837
if (!this.didRegisterObserver) { // make sure that the events are not attached more than once
3938
this.didRegisterObserver = this._addObserver("didRegisterForRemoteNotificationsWithDeviceToken", function(result) {
40-
NSNotificationCenter.defaultCenter().removeObserver(self.didRegisterObserver);
39+
self._removeObserver(self.didRegisterObserver, "didRegisterForRemoteNotificationsWithDeviceToken");
4140
self.didRegisterObserver = undefined;
4241
var token = result.userInfo.objectForKey('message');
4342
success(token);
@@ -46,9 +45,8 @@ module.exports = (function() {
4645

4746
if (!this.didFailToRegisterObserver) {
4847
this.didFailToRegisterObserver = this._addObserver("didFailToRegisterForRemoteNotificationsWithError", function(e) {
49-
NSNotificationCenter.defaultCenter().removeObserver(self.didFailToRegisterObserver);
48+
self._removeObserver(self.didFailToRegisterObserver, "didFailToRegisterForRemoteNotificationsWithError");
5049
self.didFailToRegisterObserver = undefined;
51-
//var err = JSON.parse(e.userInfo.objectForKey('error'));
5250
error(e);
5351
});
5452
}
@@ -73,15 +71,17 @@ module.exports = (function() {
7371

7472
if (!this.registerUserSettingsObserver) {
7573
this.registerUserSettingsObserver = this._addObserver("didRegisterUserNotificationSettings", function() {
76-
NSNotificationCenter.defaultCenter().removeObserver(self.registerUserSettingsObserver);
74+
this._removeObserver(self.registerUserSettingsObserver, "didRegisterUserNotificationSettings");
75+
7776
self.registerUserSettingsObserver = undefined;
7877
success();
7978
});
8079
}
8180

8281
if (!this.failToRegisterUserSettingsObserver) {
8382
this.failToRegisterUserSettingsObserver = this._addObserver("failToRegisterUserNotificationSettings", function(error) {
84-
NSNotificationCenter.defaultCenter().removeObserver(self.failToRegisterUserSettingsObserver);
83+
self._removeObserver(self.didFailToRegisterObserver, "failToRegisterUserNotificationSettings");
84+
8585
self.failToRegisterUserSettingsObserver = undefined;
8686
error(error);
8787
});
@@ -100,7 +100,8 @@ module.exports = (function() {
100100
var self = this;
101101
if (!this.didUnregisterObserver) {
102102
this.didUnregisterObserver = this._addObserver("didUnregister", function(context) {
103-
NSNotificationCenter.defaultCenter().removeObserver(self.didUnregisterObserver);
103+
self._removeObserver(self.didUnregisterObserver, "didUnregister");
104+
104105
self.didUnregisterObserver = undefined;
105106
done(context);
106107
});
@@ -118,7 +119,9 @@ module.exports = (function() {
118119
if(areEnabledStr === "true"){
119120
areEnabled = true;
120121
}
121-
NSNotificationCenter.defaultCenter().removeObserver(self.areNotificationsEnabledObserver);
122+
123+
this._removeObserver(self.areNotificationsEnabledObserver, "areNotificationsEnabled");
124+
122125
self.areNotificationsEnabledObserver = undefined;
123126
done(areEnabled);
124127
});
@@ -155,7 +158,11 @@ module.exports = (function() {
155158
},
156159

157160
_addObserver: function(eventName, callback) {
158-
return NSNotificationCenter.defaultCenter().addObserverForNameObjectQueueUsingBlock(eventName, null, NSOperationQueue.mainQueue(), callback);
161+
return iosApp.addNotificationObserver(eventName, callback);
162+
},
163+
164+
_removeObserver: function(observer, eventName) {
165+
iosApp.removeNotificationObserver(observer, eventName);
159166
}
160167

161168
};

0 commit comments

Comments
 (0)