@@ -53,6 +53,10 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
53
53
[self clearAll: call withResult: result];
54
54
else if ([@" OneSignal#requestPermission" isEqualToString: call.method])
55
55
[self requestPermission: call withResult: result];
56
+ else if ([@" OneSignal#registerForProvisionalAuthorization" isEqualToString: call.method])
57
+ [self registerForProvisionalAuthorization: call withResult: result];
58
+ else if ([@" OneSignal#initNotificationOpenedHandlerParams" isEqualToString: call.method])
59
+ [self initNotificationOpenedHandlerParams ];
56
60
else
57
61
result (FlutterMethodNotImplemented);
58
62
}
@@ -70,6 +74,12 @@ - (void)requestPermission:(FlutterMethodCall *)call withResult:(FlutterResult)re
70
74
} fallbackToSettings: fallbackToSettings];
71
75
}
72
76
77
+ - (void )registerForProvisionalAuthorization : (FlutterMethodCall *)call withResult : (FlutterResult)result {
78
+ [OneSignal.Notifications registerForProvisionalAuthorization: ^(BOOL accepted) {
79
+ result (@(accepted));
80
+ }];
81
+ }
82
+
73
83
- (void )onOSPermissionChanged : (OSPermissionState*)state {
74
84
// Example of detecting the curret permission
75
85
if (state.reachable == true ) {
@@ -81,5 +91,16 @@ - (void)onOSPermissionChanged:(OSPermissionState*)state {
81
91
NSLog (@" PermissionState:\n %@ " , state);
82
92
}
83
93
94
+ - (void )initNotificationOpenedHandlerParams {
95
+ [OneSignal.Notifications setNotificationOpenedHandler: ^(OSNotificationOpenedResult * _Nonnull result) {
96
+ [self handleNotificationOpened: result];
97
+ }];
98
+ }
99
+
100
+ #pragma mark Opened Notification Handlers
101
+ - (void )handleNotificationOpened : (OSNotificationOpenedResult *)result {
102
+ [self .channel invokeMethod: @" OneSignal#handleOpenedNotification" arguments: result.toJson];
103
+ }
104
+
84
105
85
106
@end
0 commit comments