【问题标题】:How to get the OneSignal playerID如何获取 OneSignal playerID
【发布时间】:2018-11-21 13:19:33
【问题描述】:

当用户在启动应用程序时接受通知时,我需要存储 playerID。这是在 app.component.ts 中的 initializeApp 函数上。

我可以获取 playerID(我可以使用 console.log 显示它)但是当我尝试将其设置为本地存储时,它不起作用。这里是我的 app.component.ts:

initializeApp() {
    if (this.platform.ready()) {
      this.platform.ready().then((res) => {
        console.log(res);
        if (res == 'cordova') {
                this.oneSignal.startInit('xxx-xxx-xxx', 'xxx');
                this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.InAppAlert);
                this.oneSignal.getIds().then((ids) => {
                  this.nativeStorage.setItem('playerID', ids.userId);
                });
                this.oneSignal.handleNotificationReceived().subscribe((message) => {
                    // do something when notification is received
               
                });
                this.oneSignal.handleNotificationOpened().subscribe(() => {
                    // do something when a notification is opened
                });

                this.oneSignal.endInit();
                
          // console.log(this.oneSignal.startInit('b8320a40-f565-4593-b9aa-d98b580bf8e1', '323509745034'));
          // this.oneSignal.getIds().then(response=>{
          //   console.log(response);
          //     });
          // this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.InAppAlert);
          // this.oneSignal.handleNotificationReceived().subscribe(() => {
          // });
          // this.oneSignal.handleNotificationOpened().subscribe(() => {
          // });
          // this.oneSignal.endInit();
        }
      });
    }
  }

【问题讨论】:

    标签: typescript ionic-framework push-notification ionic3 onesignal


    【解决方案1】:

    在平台准备好时初始化OneSignal,初始化完成后,你可以得到设备ID:

        import { Platform, } from 'ionic-angular'; // Import Platform
            
        onseSignalAppId: string = 'xxx-xxx-xxx-xxx-xx-x-x-xxx';
        googleProjectId: string = 'xxxxxxxx';
        
        constructor(platform: Platform) {
        }
        
        platform.ready().then(() => {
                  // Okay, so the platform is ready and our plugins are available.
                  // Here you can do any higher level native things you might need.
         statusBar.styleDefault();
         splashScreen.hide();
            
        if (this.platform.is('cordova')) {
        
          if (this.platform.is('android')) {
            this.oneSignal.startInit('onseSignalAppId', 'googleProjectId');
          }
          if (this.platform.is('ios')) {
            this.oneSignal.startInit('onseSignalAppId');
          }
        this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.Notification);
    
        this.oneSignal.handleNotificationReceived().subscribe(() => {
            // do something when notification is received
          });
        this.oneSignal.handleNotificationOpened().subscribe(result => {
            // do something when a notification is opened
          });
                
          this.oneSignal.endInit();
          
         // Then You Can Get Devices ID
    
           this.oneSignal.getIds().then(identity => {
               alert(identity.pushToken + " It's Push Token);
               alert(identity.userId + " It's Devices ID");
             });
                           
          });
    

    Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      相关资源
      最近更新 更多