OneSignal是一个很好的推送软件(非大陆使用,ios正常,android无法接收),跟极光推送差不多,不过android版使用的是google提供的服务进行系统通知,所以不会像极光存在可能接收不到推送的情况。而且最重要的是不限次数,免费。只是很可惜,这玩意大陆用不了,google服务被墙了,只限于没被墙的地区。由于手头上有个项目是香港地区用的,所以使用到了OneSignal(大陆Android手机无法正常使用)。
-.-
ionic onesignal 搭建说明网址
https://ionicframework.com/docs/native/onesignal/
https://documentation.onesignal.com/docs/ionic-sdk-setup
1.Windows 下android搭建
先翻墙,否则安装成功了编译时也无法下载依赖文件
1.1 现在官网注册一个帐号,注册的帐号将会用来进行推送信息
官网:https://onesignal.com/
创建帐号成功后点击进行创建应用
1.2 onesignal官网中配置android平台
点击刚才创建的应用进行配置
此处需要一个key和项目号码
点击箭头进入超链接跳转
在文中点击箭头处的超链接进行注册创建
按照此链接说明创建google应用即可
https://documentation.onesignal.com/docs/generate-a-google-server-api-key
最终会得到一个key和number
填入onesignal应用中android配置即可
1.3 添加到ionic项目
项目根目录执行
$ ionic cordova plugin add onesignal-cordova-plugin
$ npm install --save @ionic-native/onesignal
调用绑定
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函数中的参数来自于
至此android搭建完成,从新编辑运行即可
2. mac 下ios搭建
2.1 生成推送证书
只需要安装以下网址配置即可
https://documentation.onesignal.com/docs/generate-an-ios-push-certificate
最终把.p12文件上传
2.2 添加插件到项目
- 请先确保ios版本在4.3.0以上
- 确保cordova版本在6.4 以上
- 确保cocoapods是1.1.1版本,如有多个版本请删除其它(pod --version 查看)
- 确保有权限(详情://www.greatytc.com/p/f60d28adb468)
如未安装cocoapods,请先下载
sudo gem install cocoapods :1.1.1
pod repo update
安装插件到项目,此处不能能用sudo进行添加,否则会报错(You cannot run CocoaPods as root),所以要先确保有权限
$ ionic cordova plugin add onesignal-cordova-plugin
$ npm install --save @ionic-native/onesignal
项目代码与android配置中的ts代码一样
2.3 编译成功后打开YourAppName.xcworkspac文件
在项目根目录/platform/ios/YourAppName.xcworkspace
由于使用了cocoapods 进行构建,所以不能再使用以前的 YourAppName.xcodeproj,否则会无法正常运行
2.4 启用推送(必要)
2.5 可选配置(推荐)
链接:https://documentation.onesignal.com/docs/ionic-sdk-setup
如下图所示进行配置即可:
至此,ios版配置也完成
3. 测试
3.1 程序运行到手机后,在onesignal对应的应用中查看是否有注册成功
由上图可见,大陆android手机并不能接收该推送,其中Subscrlbed为Yes的才能正常接收推送信息,ios正常。而这部正常的android测试机由香港提供。
3.2 推送
点击新建信息发送给所有人或者指定人群即可
可接受人总数
无论程序是否关闭,程序依然能通过手机系统进行接收信息