美文网首页ios实用开发技巧
ios NotificationServiceExtension

ios NotificationServiceExtension

作者: cfxiaoxixi | 来源:发表于2019-02-15 14:27 被阅读4次

简述

前几天需要在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.断点。说实话我打的断点一次都没走,简直醉了,虽然不影响调试,但是想知道原因,有了解的,说说原因,谢谢。

放一张通知扩展成功实现的图片


IMG_1618.PNG

相关文章

网友评论

    本文标题:ios NotificationServiceExtension

    本文链接:https://www.haomeiwen.com/subject/rbdyeqtx.html