// Ios应用在前台时监听消息推送接收事件,消息不会进入消息中心(不会弹出消息),只能通过创建本地消息,实现消息提醒(但该方式没有声音)
plus.push.addEventListener( "receive", function( msg ) {
//获取个推服务端编程透传的消息,
if ( msg.aps ){
var jsonPayload = JSON.parse(msg.aps.category);
//创建本地消息
if('NO' == jsonPayload.localMSG){//个推推送的消息
//创建本地消息提示,并延迟显示
var messageOption = {cover:false,delay:1};
jsonPayload.localMSG = "YES";
//iOS下,创建本地消息没有声音。
plus.push.createMessage("好友发布了分享,请点击查看", JSON.stringify(jsonPayload), messageOption );
}
}
}, false );
// Ios应用不在前端时,通过个推服务端编程调用pushAPNMessageToSingle接口推送的消息会进入系统消息中心(会弹出消息,并且有声音),当用户点击消息,则会启动HTML5+应用,并且在监听了“click”事件的页面中触发事件的回调
plus.push.addEventListener( "click", function( msg ) {
if ( msg.aps ){个推pushAPNMessageToSingle接口推送的aps消息
var jsonPayload = JSON.parse(msg.aps.category);//通过category实现透传字段传值
//实现打开应用的特定业务单据详情页面
wrhFunc.openWin('/html/share/shareDetail.html',{bussId:jsonPayload.shareId});
return;
}
//点击应用在前端时,创建的本地消息
var jsonPayload = JSON.parse(msg.payload);
if("YES" == jsonPayload.localMSG){
wrhFunc.openWin('/html/share/shareDetail.html',{shareId:jsonPayload.shareId});
}
}, false );
这是我目前实现iOS个推透传消息推送的方式。
现在的问题就是应用在前台时,消息不会进入消息中心,(不能弹出提醒),只能通过创建本地消息来实现消息提醒,但没有声音,Android是可以有声音的,请专家们看下如何解决该问题,或者有没有更好的方式来实现Ios的个推透传消息推送。
6 个回复
kolbe
应用在前台的时候可以监听receive事件,然后创建audio对象,接着使用该对象来间接播放音频文件
DCloud_App_Array
目前暂不支持设置声音,已收集为需求功能。
1***@qq.com
创建本地推送,为什么我ios不能推送到状态栏
2019-03-27 17:46
villayong
很有必要啊,希望能早日解决。。
DCloud_IOS_XTY
目前已经支持了,注意程序在前台时不会有提示声音
Larker_Chen
这个还是没声音,请问还需怎么设置?
2016-04-03 22:30
大前端小王子
plus.push.createMessage app在后台不会触发receive 之前的版本是可以的
2020-03-16 17:19
大前端小王子
在前台ios可以正常触发,安卓的都没有问题,但是ios不行
2020-03-16 17:19
villayong
// Ios应用在前台时监听消息推送接收事件,消息不会进入消息中心(不会弹出消息),只能通过创建本地消息,实现消息提醒(但该方式没有声音)
plus.push.addEventListener( "receive", function( msg ) {
//获取个推服务端编程透传的消息,
if ( msg.aps ){
var jsonPayload = JSON.parse(msg.aps.category);
//创建本地消息
if('NO' == jsonPayload.localMSG){//个推推送的消息
//创建本地消息提示,并延迟显示
var messageOption = {cover:false,delay:1};
jsonPayload.localMSG = "YES";
//iOS下,创建本地消息没有声音。
plus.push.createMessage("好友发布了分享,请点击查看", JSON.stringify(jsonPayload), messageOption );
}
}
}, false );
// Ios应用不在前端时,通过个推服务端编程调用pushAPNMessageToSingle接口推送的消息会进入系统消息中心(会弹出消息,并且有声音),当用户点击消息,则会启动HTML5+应用,并且在监听了“click”事件的页面中触发事件的回调
plus.push.addEventListener( "click", function( msg ) {
if ( msg.aps ){个推pushAPNMessageToSingle接口推送的aps消息
var jsonPayload = JSON.parse(msg.aps.category);//通过category实现透传字段传值
//实现打开应用的特定业务单据详情页面
wrhFunc.openWin('/html/share/shareDetail.html',{bussId:jsonPayload.shareId});
return;
}
//点击应用在前端时,创建的本地消息
var jsonPayload = JSON.parse(msg.payload);
if("YES" == jsonPayload.localMSG){
wrhFunc.openWin('/html/share/shareDetail.html',{shareId:jsonPayload.shareId});
}
}, false );
这是我目前实现iOS个推透传消息推送的方式。
现在的问题就是应用在前台时,消息不会进入消息中心,(不能弹出提醒),只能通过创建本地消息来实现消息提醒,但没有声音,Android是可以有声音的,请专家们看下如何解决该问题,或者有没有更好的方式来实现Ios的个推透传消息推送。
DCloud_App_Array
iOS平台在前台创建系统消息时不会播放声音(系统限制),如果业务确实需要,可以播放音频文件来实现。