OneSignal是一個(gè)很好的推送軟件(非大陸使用,ios正常吞彤,android無法接收)我衬,跟極光推送差不多,不過android版使用的是google提供的服務(wù)進(jìn)行系統(tǒng)通知饰恕,所以不會(huì)像極光存在可能接收不到推送的情況挠羔。而且最重要的是不限次數(shù),免費(fèi)埋嵌。只是很可惜破加,這玩意大陸用不了,google服務(wù)被墻了莉恼,只限于沒被墻的地區(qū)拌喉。由于手頭上有個(gè)項(xiàng)目是香港地區(qū)用的,所以使用到了OneSignal(大陸Android手機(jī)無法正常使用)俐银。
-.-
ionic onesignal 搭建說明網(wǎng)址
https://ionicframework.com/docs/native/onesignal/
https://documentation.onesignal.com/docs/ionic-sdk-setup
1.Windows 下android搭建
先翻墻,否則安裝成功了編譯時(shí)也無法下載依賴文件
1.1 現(xiàn)在官網(wǎng)注冊一個(gè)帳號(hào)端仰,注冊的帳號(hào)將會(huì)用來進(jìn)行推送信息
官網(wǎng):https://onesignal.com/
創(chuàng)建帳號(hào)成功后點(diǎn)擊進(jìn)行創(chuàng)建應(yīng)用
1.2 onesignal官網(wǎng)中配置android平臺(tái)
點(diǎn)擊剛才創(chuàng)建的應(yīng)用進(jìn)行配置
此處需要一個(gè)key和項(xiàng)目號(hào)碼
點(diǎn)擊箭頭進(jìn)入超鏈接跳轉(zhuǎn)
在文中點(diǎn)擊箭頭處的超鏈接進(jìn)行注冊創(chuàng)建
按照此鏈接說明創(chuàng)建google應(yīng)用即可
https://documentation.onesignal.com/docs/generate-a-google-server-api-key
最終會(huì)得到一個(gè)key和number
填入onesignal應(yīng)用中android配置即可
1.3 添加到ionic項(xiàng)目
項(xiàng)目根目錄執(zhí)行
$ ionic cordova plugin add onesignal-cordova-plugin
$ npm install --save @ionic-native/onesignal
調(diào)用綁定
import { OneSignal } from '@ionic-native/onesignal';
constructor(private oneSignal: OneSignal) { }
...
this.oneSignal.startInit('b2f7f966-d8cc-11e4-bed1-df8f05be55ba', '703322744261');
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.InAppAlert);
this.oneSignal.handleNotificationReceived().subscribe(() => {
// do something when notification is received
});
this.oneSignal.handleNotificationOpened().subscribe(() => {
// do something when a notification is opened
});
this.oneSignal.endInit();
此處代碼startInit函數(shù)中的參數(shù)來自于
至此android搭建完成捶惜,從新編輯運(yùn)行即可
2. mac 下ios搭建
2.1 生成推送證書
只需要安裝以下網(wǎng)址配置即可
https://documentation.onesignal.com/docs/generate-an-ios-push-certificate
最終把.p12文件上傳
2.2 添加插件到項(xiàng)目
- 請先確保ios版本在4.3.0以上
- 確保cordova版本在6.4 以上
- 確保cocoapods是1.1.1版本,如有多個(gè)版本請刪除其它(pod --version 查看)
- 確保有權(quán)限(詳情:http://www.reibang.com/p/f60d28adb468)
如未安裝cocoapods荔烧,請先下載
sudo gem install cocoapods :1.1.1
pod repo update
安裝插件到項(xiàng)目吱七,此處不能能用sudo進(jìn)行添加,否則會(huì)報(bào)錯(cuò)(You cannot run CocoaPods as root)鹤竭,所以要先確保有權(quán)限
$ ionic cordova plugin add onesignal-cordova-plugin
$ npm install --save @ionic-native/onesignal
項(xiàng)目代碼與android配置中的ts代碼一樣
2.3 編譯成功后打開YourAppName.xcworkspac文件
在項(xiàng)目根目錄/platform/ios/YourAppName.xcworkspace
由于使用了cocoapods 進(jìn)行構(gòu)建踊餐,所以不能再使用以前的 YourAppName.xcodeproj,否則會(huì)無法正常運(yùn)行
2.4 啟用推送(必要)
2.5 可選配置(推薦)
鏈接:https://documentation.onesignal.com/docs/ionic-sdk-setup
如下圖所示進(jìn)行配置即可:
至此臀稚,ios版配置也完成
3. 測試
3.1 程序運(yùn)行到手機(jī)后吝岭,在onesignal對(duì)應(yīng)的應(yīng)用中查看是否有注冊成功
由上圖可見,大陸android手機(jī)并不能接收該推送,其中Subscrlbed為Yes的才能正常接收推送信息窜管,ios正常散劫。而這部正常的android測試機(jī)由香港提供。
3.2 推送
點(diǎn)擊新建信息發(fā)送給所有人或者指定人群即可
可接受人總數(shù)
無論程序是否關(guān)閉幕帆,程序依然能通過手機(jī)系統(tǒng)進(jìn)行接收信息