2017-04-19 9 views

답변

3

첫 번째는 코르도바 플러그인을 사용하는 방법에 대한 pushwoosh 설명서를 읽어 : 그 후 http://docs.pushwoosh.com/docs/cordova-phonegap

을 내가 iOS 및 Android 작업이 코드를 얻었다. 3 단계에

, 당신은 서비스를 제공하는 기업으로서 다음과 같은 코드를 사용할 수 있습니다 : 내 프로젝트에 내가이 파일을 만든 폴더 : /src/app/providers/push-service.ts

import { Injectable } from "@angular/core"; 
import { Platform } from 'ionic-angular'; 
declare var cordova : any; 

@Injectable() 
export class PushService { 

    PUSHWOOSH_APP_ID : string = 'XXXXX-XXXXX'; // your pushwoosh app id 
    GOOGLE_PROJECT_NUMBER: string = 'XXXXXXXXXXXX'; // project number from firebase 

    constructor(public platform : Platform){ 

     this.platform.ready().then(() => { 
      if(this.platform.is('ios') || this.platform.is('android')){ 
       console.log("PushwooshService init: Running on push compatible platform "+ this.platform.userAgent() +')'); 
       this.initPushwoosh(); 
      } else{ 
       console.log("PushwooshService init: No compatible platform available. Skipping init.)"); 
       return; 
      } 
     }); 


    } 

    initPushwoosh(){ 
     let pushNotification = cordova.require("pushwoosh-cordova-plugin.PushNotification"); 

      //set push notifications handler 
      document.addEventListener('push-notification', function (event) { 
      let message = (event as any).notification.message; // Push message 
      let userData = (event as any).notification.userdata; // Custom push data 

      if (userData) { 
      // handle custom push data here 
      console.log('user data: ' + JSON.stringify(userData)); 
      } 

      }); 

      //initialize Pushwoosh with projectid: "GOOGLE_PROJECT_NUMBER", pw_appid : "PUSHWOOSH_APP_ID". This will trigger all pending push notifications on start. 
      pushNotification.onDeviceReady({ 
       appid: this.PUSHWOOSH_APP_ID, 
       projectid: this.GOOGLE_PROJECT_NUMBER 
       // serviceName: "MPNS_SERVICE_NAME" 
      }); 

      //register for pushes 
      pushNotification.registerDevice(
       function (status) { 
       var pushToken = status; 
       console.log(pushToken); 
       alert('push token: ' + JSON.stringify(pushToken)); 
       }, 
       function (status) { 
       alert(JSON.stringify(['failed to register ', status])); 
       } 
     ); 
    } 

} 

지금 당신에게 /src/app/app.component.ts에서이 제공자를 가져올 수 있습니다.

import { PushService } from '../providers/push-service'; 

    @Component({ 
     templateUrl: 'app.html', 
     providers: [PushService] 
    }) 

앱이 실행될 때마다 푸시 워시가 초기화됩니다.

행운을 빕니다)

+0

firebase에서 프로젝트 번호를 사용해야합니까? 대신에 mySQL 데이터베이스를 사용하고 있기 때문입니다. – RamshaS

+1

안드로이드 용 클라우드 메시징을위한 firebase 프로젝트 번호가 필요합니다. – user1980927

+1

정말 고맙습니다. 하지만 여전히 event.notification.message에서 오류가 발생합니다. '알림'변수의 출처를 설명해 주시겠습니까? 내 intellisense 알림에 빨간색 선을 보여주는! – RamshaS

1

당신은

var message = (event as any).notification.message;

대신

var message = event.notification.message;

사용할 필요가