gpt4 book ai didi

ios - UrbanAirship pushNotificationDelegate 永远不会被调用

转载 作者:行者123 更新时间:2023-11-29 12:50:56 25 4
gpt4 key购买 nike

我正在使用 UrbanAirship 来管理我的 iOS 应用程序中的通知。我想添加一些关于如何管理通知的特定行为,因此我决定在自定义处理程序上实现协议(protocol) UAPushNotificationDelegate

在这个协议(protocol)中,我只是在这两个函数中添加了一些 NSLog 用于测试目的。

- (void)displayNotificationAlert:(NSString *)alertMessage{
NSLog(@"Foreground Alert");
}

- (void)launchedFromNotification:(NSDictionary *)notification{
....Here I added code to present an alert view...
}

然后在 AppDelegate 方法 didFinishLaunchingWithOptions 中,我添加了 UrbanAirship 配置:

// UrbanAirship data
UAConfig *config = [UAConfig defaultConfig];
[UAirship takeOff:config];

// THE DELEGATE!
UANotificationDelegate *pushDelegate = [[UANotificationDelegate alloc]init];
[UAPush shared].pushNotificationDelegate = pushDelegate;

[UAPush shared].notificationTypes = (UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert );

这是我用来测试代码的测试 curl 调用。

   curl -X POST -u "_APPKEY_:_MASTERKEY_" \
-H "Content-Type: application/json" \
--data '{"device_tokens": ["_THETOKEN_"],
"aps": {"alert": "Hello!"}}' \
https://go.urbanairship.com/api/push/

我的设备收到通知,但从未调用我的自定义方法。我做错了什么?

最佳答案

pushNotificationDelegate 属性很弱,所以没有什么能阻止你的 pushDelegate 被垃圾回收。您需要自己将该 pushDelegate 变量存储在某个地方,以确保它不会被释放。

关于ios - UrbanAirship pushNotificationDelegate 永远不会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22451959/

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