关于Cordova iOS 工程极光推送通知自定义声音的设置

前提条件:你已经在极光官网后台申请了极光推送所需要的APP_KEY,以及在苹果开发者中心在你的项目中开启了推送权限,并制作了推送证书上传到极光后台,前面这些不知道怎么设置的,请自行问度娘。没办法,ios端就是这么繁琐,每申请一个权限,几乎都需要设置对应的证书,相对于安卓来说,麻烦一点。

一、在你的Cordova ios工程中安装极光官方的插件,安装方法如下:

cordova plugin add jpush-phonegap-plugin --variable APP_KEY=your_jpush_appkey

具体内容详见极光的github网址:https://github.com/jpush/jpush-phonegap-plugin

二、转换音频文件

由于ios系统播放器默认播放只支持三种格式aiff, wav, 和 caf(应用在前端后台不运行都可以播放,只要安装应用能收到消息就可以),所以需要将原来的.mp3的格式进行转换,如果本身就是系统所支持的文件格式,就不用转换,转换方法如下:

afconvert xxxx xxxxxx -d ima4 -f caff -v
xxxx:原mp3音频路径 
xxxxxx:转换后存放的音频路径
eg: afconvert /Users/areswong/Desktop/video_call_notice_30secs.mp3 ~/Desktop/video_call_notice_30secs.caf -d ima4 -f caff -v

这里特别说明一下,(1)有些手机系统,经过我反复测试,即使自定义的音频文件是.mp3格式的也是可以播放的;(2)自定义的音频文件不要超过30秒,超过30秒部分无效;(3)如果你应用的通知横幅模式设置是“临时”,那么你的自定义通知,默认情况下只能播放前5秒,如果想把你设置的自定义声音播放完,需要把横幅模式改为“持续”。

三、将第二步转换好的音频文件拖入的你的工程中,如下面所示。

(1)将转换好的音频文件拖入Resources目录下,如下图:

关于Cordova iOS 工程极光推送通知自定义声音的设置

(2)拖入之后会有一个弹出弹窗,如下图操作即可: 

关于Cordova iOS 工程极光推送通知自定义声音的设置

 (3)然后在targets中的Build Phases中查看是否存在这个音频文件,如果不存在则需要添加上,如下图:

关于Cordova iOS 工程极光推送通知自定义声音的设置

自此引入音频文件完成 。

四、服务端文件进行设置,我用的是PHP文件,其他文件设置请参考极光官网说明或者下载对应的demo进行查看设置。

(1)应用在后台时想触发回调需要在推送的服务器端php(jpush.php)中传入字段:"content-available":1 ,或者 "content-available":true,在sound字段下添加即可(这个可以先不设置进行测试,如果再后台也能收到通知,则不设置)

(2)检查服务器端jpush.php 文件的sound字段的音频名称与工程的文件音频名称是否一致(包括后缀名,如果不一致请改为工程中引入的那个音频文件名称),例如我测试设置的sound字段为sound: video_call_notice_30secs.caf。

以上两点操作如下图:

关于Cordova iOS 工程极光推送通知自定义声音的设置

 

以上就是设置自定义声音的方法,注意事项如下:

1、如果是需要进行打包测试,则需要将apns_production字段设置为false(开发模式)

2、真机运行,静音模式听不到,请关闭静音模式。

3、播放的音频在默认情况下只有5秒左右,当通知栏收回时,音频也会自动停止。想要播放更长的时间则需要在手机设置-》你的APP设置-》通知-》横幅风格 改为持续,这样推送通知不会收回,音频就可以播放完。

这些都是我在工作中出现的问题以及解决的一些办法,如果对您有所帮助,就点点赞吧!如果没有帮助,就当我没说。因为我这不是专业学ios的,只是将我实际出现的问题以及解决办法记录一下,如果有错误的地方,请大家指出,谢谢! 

上一篇:android phonegap插件开发方法 plugin,Android开发前景怎么样


下一篇:Cordova封装打包vue H5项目到Android平台详解