| 6 | |
| 7 | let Callback; |
| 8 | function ensureCallback() { |
| 9 | @NativeClass |
| 10 | @Interfaces([org.nativescript.firebase.messaging.FirebaseMessaging.Callback]) |
| 11 | class CallbackImpl extends java.lang.Object implements org.nativescript.firebase.messaging.FirebaseMessaging.Callback<string> { |
| 12 | _owner: WeakRef<MessagingCore>; |
| 13 | _propName: string; |
| 14 | constructor() { |
| 15 | super(); |
| 16 | return global.__native(this); |
| 17 | } |
| 18 | |
| 19 | public onError(error: any): void {} |
| 20 | |
| 21 | public onSuccess(message: string): void { |
| 22 | const callback = this._owner?.get?.()?.[this._propName]; |
| 23 | if (typeof callback === 'function') { |
| 24 | if (this._propName === '_onToken') { |
| 25 | callback(message); |
| 26 | } else if (this._propName === '_onNotificationTap' || this._propName === '_onMessage') { |
| 27 | try { |
| 28 | setTimeout(() => { |
| 29 | callback(JSON.parse(message)); |
| 30 | }); |
| 31 | } catch (e) { |
| 32 | // ignore |
| 33 | } |
| 34 | } else { |
| 35 | try { |
| 36 | callback(JSON.parse(message)); |
| 37 | } catch (e) { |
| 38 | // ignore |
| 39 | } |
| 40 | } |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | Callback = CallbackImpl; |
| 46 | } |
| 47 | |
| 48 | let Callback2; |
| 49 | function ensureCallback2() { |