离子 3 通知
Posted
技术标签:
【中文标题】离子 3 通知【英文标题】:Ionic 3 Notification 【发布时间】:2018-09-17 06:54:29 【问题描述】:我想在我的应用中使用通知。我检查了 ionic native 并找到了一些信息。
首先;
Local Notification
第二个;
Push
我想做什么?我正在使用 mysql 数据库,我有两个表 users
和 points
。当我为一个用户添加积分时,我只想为这个用户发送通知。我怎样才能做到这一点?我可以使用哪个服务?
【问题讨论】:
这可能对ionicguru.blogspot.com/2015/12/…有帮助 【参考方案1】:根据您的要求,我建议您通过 FCM 使用推送通知。 推送通知有助于将通知发送到两个或更多离子应用程序。
请按照以下步骤操作。
-
转到“http://console.firebase.google.com”并创建一个 android 应用,确保在 config.xml 文件中也提及应用包名称。
在 App 中安装 Cordova 和 Ionic Native 插件:
ionic cordova 插件添加 cordova-plugin-fcm npm install --save @ionic-native/fcm
在您的“app.component.ts”文件中使用此代码和 initializeApp
/getToken 生成一个设备令牌,帮助您在此设备上发送通知。您必须在应用打开时将此令牌存储在您的数据库中。/
fcm.getToken().then(token=>
console.log(token);
);
fcm.onNotification().subscribe(data=>
if(data.wasTapped)
console.log("Received in background");
else
console.log("Received in foreground");
;
);
fcm.onTokenRefresh().subscribe(token=>
console.log(token);
);
现在您必须遵循发送通知的真实过程
/这是您必须添加存储在数据库中的设备令牌和 firebase api 密钥。/
let body =
"notification":
"title":"New Notification has arrived",
"body":"Notification Body",
"sound":"default",
"click_action":"FCM_PLUGIN_ACTIVITY",
"icon":"fcm_push_icon"
,
"data":
"param1":"value1",
"param2":"value2"
,
"to":"Device token/ID",
"priority":"high",
"restricted_package_name":""
let options = new HttpHeaders().set('Content-Type','application/json');
this.http.post("https://fcm.googleapis.com/fcm/send",body,
headers: options.set('Authorization', 'key=YourAuthToken'),
).subscribe();
希望这对您有所帮助。 谢谢。
【讨论】:
【参考方案2】:推送通知与本地通知的工作方式相同,但略有不同。推送通知需要连接性和某种服务器基础设施来发送通知。使用本地通知,您可以触发带有条件的通知。即使应用程序已关闭且您处于离线状态,您也会收到通知。并且同时拥有这两个通知不会造成影响。
在你的情况下,你应该使用推送通知。如果将来你想更改参数发送通知,你将很容易维护。无需更新应用程序 em>
您可以在服务器端使用 FCM-Firebase Cloud Messaging,在客户端您可以使用 PhoneGap 推送插件来生成设备令牌
这里是插件
<plugin name="phonegap-plugin-push" source="npm" spec="1.8.4">
<variable name="SENDER_ID" value="XXXXXXX" />
</plugin>
【讨论】:
感谢您的信息,我们正在使用推送确定。有两个问题,1.我该怎么做? 2. 我可以使用哪些服务?您已回答第二个问题,请回答第一个问题 我已经在使用用户推送通知。我可以使用 FCM 推送进行设置。它的工作没问题。 但我想在向 MySQL 数据库添加信息时发送推送以上是关于离子 3 通知的主要内容,如果未能解决你的问题,请参考以下文章