Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
react-native-fcm
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Jira
Jira
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
ym
react-native-fcm
Commits
efc05507
Commit
efc05507
authored
Sep 21, 2016
by
Libin Lu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
iOS 10 support
parent
486cc0bb
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
49 additions
and
10 deletions
+49
-10
ios/RNFIRMesssaging.m
ios/RNFIRMesssaging.m
+49
-10
No files found.
ios/RNFIRMesssaging.m
View file @
efc05507
...
...
@@ -5,6 +5,8 @@
#import "RCTEventDispatcher.h"
#import "RCTUtils.h"
@import
UserNotifications
;
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
#define UIUserNotificationTypeAlert UIRemoteNotificationTypeAlert
...
...
@@ -187,20 +189,57 @@ RCT_EXPORT_METHOD(requestPermissions)
if
(
RCTRunningInAppExtension
())
{
return
;
}
UIUserNotificationType
types
=
UIUserNotificationTypeAlert
|
UIUserNotificationTypeBadge
|
UIUserNotificationTypeSound
;
if
(
floor
(
NSFoundationVersionNumber
)
<=
NSFoundationVersionNumber_iOS_9_x_Max
)
{
UIUserNotificationType
allNotificationTypes
=
(
UIUserNotificationTypeSound
|
UIUserNotificationTypeAlert
|
UIUserNotificationTypeBadge
);
UIApplication
*
app
=
RCTSharedApplication
();
if
([
app
respondsToSelector
:
@selector
(
registerUserNotificationSettings
:)])
{
//iOS 8 or later
UIUserNotificationSettings
*
notificationSettings
=
[
UIUserNotificationSettings
settingsForTypes
:(
NSUInteger
)
t
ypes
categories
:
nil
];
[
UIUserNotificationSettings
settingsForTypes
:(
NSUInteger
)
allNotificationT
ypes
categories
:
nil
];
[
app
registerUserNotificationSettings
:
notificationSettings
];
[
app
registerForRemoteNotifications
];
}
else
{
[
app
registerForRemoteNotificationTypes
:(
NSUInteger
)
types
];
//iOS 7 or below
[
app
registerForRemoteNotificationTypes
:(
NSUInteger
)
allNotificationTypes
];
}
}
else
{
// iOS 10 or later
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
UNAuthorizationOptions
authOptions
=
UNAuthorizationOptionAlert
|
UNAuthorizationOptionSound
|
UNAuthorizationOptionBadge
;
[[
UNUserNotificationCenter
currentNotificationCenter
]
requestAuthorizationWithOptions:
authOptions
completionHandler:
^
(
BOOL
granted
,
NSError
*
_Nullable
error
)
{
}
];
// For iOS 10 display notification (sent via APNS)
[[
UNUserNotificationCenter
currentNotificationCenter
]
setDelegate
:
self
];
// For iOS 10 data message (sent via FCM)
[[
FIRMessaging
messaging
]
setRemoteMessageDelegate
:
self
];
#endif
}
[[
UIApplication
sharedApplication
]
registerForRemoteNotifications
];
}
#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// Receive displayed notifications for iOS 10 devices.
-
(
void
)
userNotificationCenter
:(
UNUserNotificationCenter
*
)
center
willPresentNotification
:(
UNNotification
*
)
notification
withCompletionHandler
:(
void
(
^
)(
UNNotificationPresentationOptions
))
completionHandler
{
NSDictionary
*
userInfo
=
notification
.
request
.
content
.
userInfo
;
[
_bridge
.
eventDispatcher
sendDeviceEventWithName
:
FCMNotificationReceived
body
:
userInfo
];
}
// Receive data message on iOS 10 devices.
-
(
void
)
applicationReceivedRemoteMessage
:(
FIRMessagingRemoteMessage
*
)
remoteMessage
{
[
_bridge
.
eventDispatcher
sendDeviceEventWithName
:
FCMNotificationReceived
body
:[
remoteMessage
appData
]];
}
#endif
RCT_EXPORT_METHOD
(
subscribeToTopic
:
(
NSString
*
)
topic
)
{
[[
FIRMessaging
messaging
]
subscribeToTopic
:
topic
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment