简述
前几天需要在app通知栏上加上一张图片,需要简单定义通知栏的UI,由于集成的Jpush,所以就去Jpush官网上查看了通知接口,顺便也把demo下载下来看了看,实现功能的时候遇到一些问题。
问题
1.以target形式创建的NotificationServiceTest会产生一个新的bundle id,是否要对新的target创建通知证书及配置描述文件。
2.配置成功后,通知收到了,但是未走拦截方法didReceiveNotificationRequest,通知UI没有改变。
3.打包的问题。
4.断点调试。
实现
这里直接以jpush demo为例子来讲。
1.jpush demo里面有一个readme

第三条说通知扩展服务在使用时需要配置相关证书,其实说的是用主target pushTest的bundle id配置通知证书,我理解的是NotificationServiceTest是服务于pushTest的,这个服务用于是拦截pushTest接收到的通知并加以修改。

** NotificationServiceTest的一些配置:**



再来看看我的主工程pushTest的一些配置:


只用通知的话,loaction updates并不用勾上


从上可以看到,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"要打上勾:

3.打包。以工程主target打包,这里选择PushTest打包,打包发布过程中,有个步骤会看到你的通知服务包含在里面。还有这里pushTest的version和build需要和通知服务的version和build保持一致,不然最后打包上传的时候会报警告信息。
4.断点。说实话我打的断点一次都没走,简直醉了,虽然不影响调试,但是想知道原因,有了解的,说说原因,谢谢。
放一张通知扩展成功实现的图片
网友评论