Register user with OneSignal after login
This commit is contained in:
@@ -22,9 +22,18 @@
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
|
||||
<string>We need to enable geotagging to send you notifications and messages based on your location, so you will get the relevant ones only</string>
|
||||
<key>NSLocationAlwaysUsageDescription</key>
|
||||
<string>We need to enable geotagging to send you notifications and messages based on your location, so you will get the relevant ones only</string>
|
||||
<key>NSLocationUsageDescription</key>
|
||||
<string>We need to enable geotagging to send you notifications and messages based on your location, so you will get the relevant ones only</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>We need to enable geotagging to send you notifications and messages based on your location, so you will get the relevant ones only</string>
|
||||
<key>UIBackgroundModes</key>
|
||||
<array>
|
||||
<string>remote-notification</string>
|
||||
<string>location</string>
|
||||
</array>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { Component } from '@angular/core';
|
||||
import OneSignal from 'onesignal-cordova-plugin';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
@@ -13,51 +12,6 @@ export class AppComponent {
|
||||
|
||||
// Call this function when your app starts
|
||||
OneSignalInit(): void {
|
||||
|
||||
// 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);
|
||||
|
||||
// 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);
|
||||
|
||||
// NOTE: Update the init value below with your OneSignal AppId.
|
||||
OneSignal.init("13755f98-ec69-45fd-a2f1-d2166afcaa51");
|
||||
|
||||
// Location permissions enable geotagging in the OneSignal dashboard to send notifications to users based on their location
|
||||
OneSignal.Location.setShared(false);
|
||||
|
||||
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);
|
||||
});
|
||||
console.log('Moved to home');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Router } from '@angular/router';
|
||||
import { SessionDataProviderService } from 'src/app/store/session-data-provider.service';
|
||||
import { BlogDataService } from 'src/app/store/blog-data.service';
|
||||
import { WrenchService } from 'src/app/services/wrench.service';
|
||||
|
||||
import { OnesignalService } from 'src/app/services/onesignal.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-home',
|
||||
@@ -20,6 +20,7 @@ export class HomePage implements OnInit {
|
||||
private router: Router,
|
||||
public sessionDataProviderService: SessionDataProviderService,
|
||||
private wrenchService: WrenchService,
|
||||
private onesignalService: OnesignalService,
|
||||
public blogDataService: BlogDataService
|
||||
) {
|
||||
this.firstname = this.sessionDataProviderService.firstname;
|
||||
@@ -34,6 +35,7 @@ export class HomePage implements OnInit {
|
||||
// this.getBannersData();
|
||||
console.log("BLOG HOME 002->", this.blogDataService.blogData);
|
||||
// this.firstname = this.sessionDataProviderService.firstname;
|
||||
this.onesignalService.Init(this.sessionDataProviderService.member_uid);
|
||||
}
|
||||
|
||||
ionViewDidEnter(){
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { OnesignalService } from './onesignal.service';
|
||||
|
||||
describe('OnesignalService', () => {
|
||||
let service: OnesignalService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(OnesignalService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(service).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,96 @@
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
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 {
|
||||
|
||||
// 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);
|
||||
|
||||
// 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);
|
||||
|
||||
// NOTE: Update the init value below with your OneSignal AppId.
|
||||
OneSignal.init(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.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 <protected_field_value>
|
||||
// <?php echo hash_hmac('sha256', $email_address, $ONESIGNAL_REST_API_KEY);
|
||||
// OneSignal.getUser().addSms(smsNumber, smsAuthHash);
|
||||
|
||||
OneSignal.Location.requestPermission();
|
||||
/*
|
||||
AndroidManifest.xml
|
||||
|
||||
// Make sure you add one of the following permissions
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||
|
||||
app/build.gradle
|
||||
|
||||
dependencies {
|
||||
...
|
||||
implementation 'com.google.android.gms:play-services-location:YOUR_PLAY_SERVICES_VERSION'
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user