add jpush event cache

This commit is contained in:
huangminlinux
2017-10-23 17:11:18 +08:00
parent 66932a8bc8
commit 3129165d3f
3 changed files with 26 additions and 1 deletions
+20 -1
View File
@@ -83,12 +83,31 @@
selector:@selector(receiveLocalNotification:)
name:JPushDocumentEvent_ReceiveLocalNotification
object:nil];
[self dispatchJPushCacheEvent];
}
- (void)dispatchJPushCacheEvent {
for (NSString* key in _jpushEventCache) {
NSArray *evenList = _jpushEventCache[key];
for (NSString *event in evenList) {
[JPushPlugin fireDocumentEvent:key jsString:event];
}
}
}
+(void)fireDocumentEvent:(NSString*)eventName jsString:(NSString*)jsString{
if (SharedJPushPlugin) {
dispatch_async(dispatch_get_main_queue(), ^{
[SharedJPushPlugin.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.%@',%@)", eventName, jsString]];
[SharedJPushPlugin.commandDelegate evalJs:[NSString stringWithFormat:@"cordova.fireDocumentEvent('jpush.%@',%@)", eventName, jsString]];
});
return;
}
if (!_jpushEventCache[eventName]) {
_jpushEventCache[eventName] = @[].mutableCopy;
}
[_jpushEventCache[eventName] addObject: jsString];
}
-(void)setTags:(CDVInvokedUrlCommand*)command {