import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { isPlatform } from '@ionic/angular'; import { Observable } from 'rxjs'; //import 'rxjs/add/operator/map'; import { environment } from 'src/environments/environment'; import { SessionDataProviderService } from '../store/session-data-provider.service'; import { Router } from "@angular/router"; import OneSignal from 'onesignal-cordova-plugin'; @Injectable({ providedIn: 'root' }) export class OnesignalService { AppId; constructor(private http: HttpClient, private router: Router, public sessionDataProviderService :SessionDataProviderService) { // this is test this.AppId = '13755f98-ec69-45fd-a2f1-d2166afcaa51'; } // Call this function when your app starts Init(member_uid): void { if ( isPlatform('ios') == true || isPlatform('android')==true){ console.log("Correct Notification platform"); } else{ return; } // https://documentation.onesignal.com/docs/mobile-sdk // alert('OneSignalInit'); // 0 = None, 1 = Fatal, 2 = Errors, 3 = Warnings, 4 = Info, 5 = Debug, 6 = Verbose // Uncomment to set OneSignal device logging to VERBOSE //OneSignal.Debug.setLogLevel(6); OneSignal.Debug.setLogLevel(0); // 0 = None, 1 = Fatal, 2 = Errors, 3 = Warnings, 4 = Info, 5 = Debug, 6 = Verbose // Uncomment to set OneSignal visual logging to VERBOSE //OneSignal.Debug.setAlertLevel(6); //OneSignal.Debug.setAlertLevel(4); OneSignal.Debug.setAlertLevel(0); // NOTE: Update the init value below with your OneSignal AppId. //OneSignal.init(this.AppId); OneSignal.initialize(this.AppId); // Location permissions enable geotagging in the OneSignal dashboard to send notifications to users based on their location OneSignal.Location.setShared(true); let myClickListener = async function(event) { let notificationData = JSON.stringify(event); //alert("CLICKED: " + notificationData); console.log('notificationOpenedCallback: ' + JSON.stringify(notificationData)); }; OneSignal.Notifications.addEventListener("click", myClickListener); // Set a handler to run before displaying a notification while the app is in focus. let myForegroundWillDisplayListener = async function(event) { let notificationData = JSON.stringify(event); // alert("RECEIVED: " + notificationData); console.log('foregroundWillDisplayCallback : ' + JSON.stringify(notificationData)); /// Display Notification, preventDefault to not display event.preventDefault(); // Use notification.display() to display the notification after some async work //event.notification.display(); }; OneSignal.Notifications.addEventListener('foregroundWillDisplay', myForegroundWillDisplayListener); // Prompts the user for notification permissions. // * Since this shows a generic native prompt, we recommend instead using an In-App Message to prompt for notification permission (See step 7) to better communicate to your users what notifications they will get. /*OneSignal.Notifications.requestPermission(function(accepted) { console.log("User accepted notifications: " + accepted); });*/ OneSignal.Notifications.requestPermission(true); // @param {boolean} fallbackToSettings //OneSignal.User.addAlias("external_id", member_uid); OneSignal.login(member_uid); // OneSignal.getUser().addEmail(emailAddress, emailAuthHash); // Auth hashes are expected to be a HMAC on a SHA-256 of the OneSignal REST API Key and the // app/build.gradle dependencies { ... implementation 'com.google.android.gms:play-services-location:YOUR_PLAY_SERVICES_VERSION' } */ } }