PHP极光推送如何自定义消息提醒声音。

PHP极光推送如何自定义消息提醒声音。,第1张

->iosNotification( $Content, Array( 'badge' => '+1', 'sound' => 'sub.caf' ) )

这是ios的,安卓我之前测试貌似不行

  在iOS 10之前的系统,APP在后台或者APP被杀掉后,收到推送消息时会d出通知提醒,如果APP是在前台运行的话,收到推送消息时是不会d出通知的,这种情况下需要开发者自己处理d框提醒的逻辑。

  但在iOS 10之后的系统,APP处于前台时,收到推送消息也会d出系统通知,这时如果开发者自己也写了d框提醒,那么就会出现系统提醒和自定义提醒共存的问题,这可能不是我们想要的效果。那么如何去掉系统的提醒呢?我们先来看下iOS 10系统下收到推送消息时的代理方法(我这里集成的是极光推送):

  其中关键就在于 completionHandler() 这个方法,其参数有 UNNotificationPresentationOptionAlert 、 UNNotificationPresentationOptionSound 、 UNNotificationPresentationOptionBadge 三种,经测试发现设置为第一个时只有通知d出提醒,没有声音提醒;设置为第二个时只有声音提醒,没有通知d出提醒;设置为第三个时没有任何效果。我们可以根据自己的需求来设置参数,如果你既要d出提醒也要声音提醒,那么可以把3个值都加进去,也就是 completionHandler(UNNotificationPresentationOptionBadge | UNNotificationPresentationOptionSound | UNNotificationPresentationOptionAlert)

事情原由:

公司有个商家版的App, 收款时有个语音播报的功能, 但是周天时老板说有个客户反馈这这两天的收款到账语音播报没有声音, 然后经理找我测试了下(不在公司, 电话里配合经理测试), 竟然发现iOS12的手机可以播报, iOS11.4的不能播报, 确实周五因为生产证书过期重新配置了, 但是测试时也没问题的(我的iOS12), 所以不可能是极光推送证书的问题啦. 初步怀疑是iOS11系统的问题, 因为我没有手机测试不了. 经理说不急, 周一回来再测吧.

原因分析:

周一, 我拿着iOS11.4的手机跑了一下, 测试没有播报的声音, 但是能收到推送通知, 检测了手机是否为静态, 然后进入程序调大音量, 看是不是音量小导致的, 但是没仔细看只注意到音量条调最大, 还是没声音, 这时我想是不是手机有点毛病, 打开个有背景音的应用看看? 所以打开了吃鸡游戏, 果然有声音, 还调节了一下, 注意到了音量调, 也注意到了音量条上文字“音量”, 然后我想到了什么, 回到我们的应用, 在次调节音量, 音量条上的文字变成了“铃声”, 这下子明白了. 因为我再吃鸡那里把声音音量调大了, 回到我们的应用再次测试, 这下果然听到了久违的收款播报声音.

分析结果:

音量按钮调节的声音有几种模式:调节铃声的(系统的声音音量), 调节音量的(多媒体的音量).

解决一:

为了实现我们进入应用按钮音量键调节的是多媒体的音量, 我找到一个方法:到设置了设置

设置完成后进入应用调节声音, 此时变成调节多媒体的音量了, 但是这里有个问题, 我们设置了系统设置, 必定回影响手机其他地方, 这样不大好, 这个得优化.

解决二:

就吃鸡而言, 在没有设置系统声音按钮键的时, 音量按钮调节的是铃声, 进入吃鸡游戏时, 调节变为多媒体音量, 这里肯定有有个API设置系统音量控制的, 于是查找资料终于找到了答案:

如下:

这个API就是设置按钮控制多媒体音量的,YES 为按钮控制多媒体音量, NO 控制铃声音量.

我们想要实现的效果是进入程序中, 声音按钮控制多媒体音量, 不受系统设置影响, 也不影响其他地方的设置. 实现:

在AppDelegate.m文件中加入

最后:

至于客户那边, 按解决一方案设置, 还是没有声音, 最后是重启手机, 才有了播报声音(这就有点坑了).

在这里想说的时, 重启很强大, 遇到问题先重启, 重启都解决不了问题才是真的有问题. 这时再慢慢找问题,解决问题吧.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11330066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存