gpt4 book ai didi

接收时执行 iOS 推送通知代码

转载 作者:行者123 更新时间:2023-12-01 17:32:15 25 4
gpt4 key购买 nike

我正在开发适用于 iOS 的消息应用程序。

我将用户的电话号码保存到服务器,但不在后端保存联系人姓名。

当用户收到服务器的推送通知时,服务器会在通知负载中将电话号码和消息内容发送给用户。我实现了 application:didReceiveRemoteNotification:fetchCompletionHandler 方法来显示本地通知。我在本地数据库中查找phoneContactName:phoneNumber对,并以以下格式显示本地通知:%phoneContactName%:%messageContent%

但是,障碍是我现在不知道如何在应用程序未运行时执行此代码。我尝试实现 application:didFinishLaunchingWithOptions 并检查那里

NSDictionary *userInfo = [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

但是这段代码没有被调用。

所以为了解决这个问题我想问一下我应该使用什么架构模型。我是否应该在服务器端保留联系人姓名,以便从服务器端发送带有联系人姓名的 notification.alert (到目前为止我的服务器不知道联系人电话号码的姓名),或者有什么方法可以在应用程序时执行代码没有运行?

附注另外,当收到通知时,我会在客户端计算角标(Badge)编号。所以,如果可以的话,代码执行方案会更好。

谢谢

最佳答案

我认为你的架构是正确的。您的问题归结于您的应用程序当前所处的应用程序状态之一。

如果您的应用程序已终止或从未打开过,则将执行 application:didFinishLaunchingWithOptions 中的上述代码,但是,如果您的应用程序处于后台或挂起状态,则将执行以下方法已调用。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo` 

因此,您还需要在应用程序委托(delegate)中实现此功能。

希望这有帮助

关于接收时执行 iOS 推送通知代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28961393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com