###### tags: `ionic` `OneSignal` # 🌝[T]OneSignal [OneSignal官網](https://onesignal.com/) ![](https://i.imgur.com/GzLRqxh.png) ## 介紹 OneSignal是針對移動應用程序的免費推送通知服務(付費有更好的功能)。 ### 使用步驟 [OneSignal文件](https://documentation.onesignal.com/docs) [Integrate OneSignal Push Notifications Into An Ionic 3 Application](https://www.c-sharpcorner.com/blogs/integrate-onesignal-push-notifications-into-an-ionic-3-application) #### step1: 下載OneSignal套件 ``` ionic cordova plugin add onesignal-cordova-plugin npm install --save @ionic-native/onesignal ``` #### step2: app.module.ts 匯入OneSignal 套件 ```typescript import { OneSignal } from '@ionic-native/onesignal'; OneSignal, ``` app.module ```typescript= import { OneSignal } from '@ionic-native/onesignal/ngx'; @NgModule({ declarations: [], imports: [], bootstrap: [IonicApp], entryComponents: [], providers: [ OneSignal ] }) export class AppModule { } ``` #### step3: 生成 Google Server API Key 新增一個Firebase專案 * 這邊就自己去建,建完就會看到你建的專案 [Firebase傳送門](https://console.firebase.google.com/) ![](https://i.imgur.com/vL6c3R1.png) #### step4: 設定OneSignal應用程式 [OneSignal傳送門](https://app.onesignal.com/) 1. 新增應用程式(New APP/WEBSITE) 2. 設定 * 選擇平台 ![](https://i.imgur.com/XZfM1rt.png) * 輸入Firebase Servier Key & Firebase Sender ID [cloud messaging傳送門](https://console.firebase.google.com/project/a1crm-6cbbe/settings/cloudmessaging/) ![](https://i.imgur.com/uszx10u.png) *firebase>settings>cloud messaging* ![](https://i.imgur.com/wPFkCLu.png) * 選擇你正在使用的軟體開發套件(SDK) ![](https://i.imgur.com/TdO2cEu.png) * 拿到APP ID ![](https://i.imgur.com/iMm7Agq.png) 3. 使用套件Function app.component ```typescript constructor( public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen ) { platform.ready().then(() => { statusBar.styleDefault(); splashScreen.hide(); const notificationOpenedCallback = function(jsonData) { console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData)); }; window["plugins"].OneSignal .startInit("YOUR_APPID", "Sender_ID") .handleNotificationOpened(notificationOpenedCallback) .endInit(); }); } ``` 4. 產生.apk檔 :::warning 💡模擬機與實體機產生APK的檔案指令不一樣,將實體機的APK裝進模擬器會沒用。 ::: * 模擬器 ionic cordova emulate android * 實體機 ionic cordova build android