func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
{
PFPush.handlePush(userInfo)
if application.applicationState == UIApplicationState.Active
{
PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo)
if let msg = userInfo["test"] as? Dictionary<String,AnyObject>
{
print(msg)
}
}
我的userInfo[“test”] JSON值是:
> Printing description of userInfo:
▿ 3 elements
▿ [0] : 2 elements
- .0 : message
- .1 : 1235
▿ [1] : 2 elements
- .0 : aps
- .1 : 0 elements
▿ [2] : 2 elements
- .0 : link
- .1 :
我可以得到我的userInfo数据,但我不知道为什么我的msg值什么都没有(甚至没有零只是没有显示)我怎么才能去,直到打印(msg)?
已更新
下面是我的推像:
这是一个很好的例子,它可以帮助你更好地理解测试的结果。
在$post_data示例中:
(数组=〉链接=〉消息=〉消息));
我已经试过了,但我不能做一个简单的打印。
get Value from userInfo
编辑
还是跳过了“aps”部分。
Picture 1
我的JSON
下面是我的Json
的样子:
> {
"aps":{
"alert":{
"title":"$title",
"body":"$message"
},
"badge":"1"
},
"adira":{
"link":"$link"
}
}
这是我的准则:
> func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
// PFPush.handlePush(userInfo)
// PFAnalytics.trackAppOpenedWithRemoteNotificationPayload(userInfo)
if let msg = userInfo["message"] as? String {
print(msg)
print("a")
}
if let alertDict = userInfo["aps"]?["alert"] as? Dictionary<String, String> {
print("title : ", alertDict["title"])
print("body :", alertDict["body"]!)
print("badge: ", alertDict["badge"]!)
print("b")
}
if let link = userInfo["link"] as? String {
print(link)
print("c")
}
}
}
但我还是不能得到我的aps
数据。仍然是零或什么都没有。
如果您需要特定的代码,只需点击下面的链接:
Full code AppDelegate.swift
编辑2
我直接使用print(userInfo),打印输出为:
对象已保存。[消息:iOS推送,aps:{ },链接:]
更新2
我试着从www.example.com推parse.com,而不是我的网站(第三方)。这是我从正常打印(userInfo)得到的
> [aps: {
alert = 12345abc;
sound = default;
}]
所以我想我只是改变和添加一些东西到我的JSON里面从我的网站到:
[aps:{
alert = $message;
sound = default;
link = $link;
}]
像这样的事?
2条答案
按热度按时间cidc1ykv1#
如注解中所述,APNS有效载荷中没有密钥
test
。如果密钥
message
的值保证始终发送,则可以轻松地解包该值否则使用可选绑定
要从
aps
键获取alert
字典并打印例如body
字符串,请使用5m1hhzi42#
我使用苹果推送通知服务提供商和json有效负载如下
由于提供程序将其作为JSON定义的字典生成,iOS将其转换为
NSDictionary
对象,没有Dictionary
这样的下标,但可以使用value(forKey:)
来自here的引用
这是我的雨燕4