简述
前几天需要在app通知栏上加上一张图片,需要简单定义通知栏的UI,由于集成的Jpush,所以就去Jpush官网上查看了通知接口,顺便也把demo下载下来看了看,实现功能的时候遇到一些问题。
问题
1.以target形式创建的NotificationServiceTest会产生一个新的bundle id,是否要对新的target创建通知证书及配置描述文件。
2.配置成功后,通知收到了,但是未走拦截方法didReceiveNotificationRequest,通知UI没有改变。
3.打包的问题。
4.断点调试。
实现
这里直接以jpush demo为例子来讲。
1.jpush demo里面有一个readme
756D4BB0-95D2-4B0A-8091-A748243378D9.png
第三条说通知扩展服务在使用时需要配置相关证书,其实说的是用主target pushTest的bundle id配置通知证书,我理解的是NotificationServiceTest是服务于pushTest的,这个服务用于是拦截pushTest接收到的通知并加以修改。
7A9EB798-198F-4779-A0E2-B24FB5DCB286.png
** NotificationServiceTest的一些配置:**
8441BAFB-FEFE-486D-AACE-5F1CB3C7F3E5.png
24980AC3-071C-4F3D-9D47-A3C3A994C1EF.png
958170D7-04B6-49A1-8ACE-914790CDD530.jpeg
再来看看我的主工程pushTest的一些配置:
AE9D4998-95F3-4A92-9687-4ACD252709E9.jpeg
3C8862B0-29AB-4BD0-A629-37251B1ABA43.png
只用通知的话,loaction updates并不用勾上
59177DF6-8A77-459B-B62C-5228E746A747.png
CC55FEC2-36B6-4C4C-8B45-A29A434F15C3.jpeg
从上可以看到,NotificationServiceTest的push Notifications没打开,只打开了pushTest的push Notifications;再说说auto manage signing,这个功能很早就出了,用于xcode自动获取开发账号team中的对应的appid的配置信息,不用我们再去一步步配置描述文件, 配置了pushtest的通知证书后,并不用再去配置NotificationServiceExtension的通知证书。
2.通知收到了,没走didReceiveNotificationRequest,这里需要设置mutable-content = 1,才能通过通知服务改变其内容,下面是收到通知的格式:
{
"_j_business" = 1;
"_j_msgid" = 1229611526;
"_j_uid" = 22735569759;
aps = {
alert = test;
badge = 1;
"mutable-content" = 1;
sound = default;
};
"img" = "图片链接";
}
通过极光后台推送时,"mutable-content"要打上勾:
690634AD-F253-4645-B109-74C639A21512.jpeg
3.打包。以工程主target打包,这里选择PushTest打包,打包发布过程中,有个步骤会看到你的通知服务包含在里面。还有这里pushTest的version和build需要和通知服务的version和build保持一致,不然最后打包上传的时候会报警告信息。
4.断点。说实话我打的断点一次都没走,简直醉了,虽然不影响调试,但是想知道原因,有了解的,说说原因,谢谢。
放一张通知扩展成功实现的图片












网友评论