如何在 didReceiveRemoteNotification 中获取 userInfo JSON 值

2023-11-24

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 没有任何值(甚至不是 nil,只是没有显示任何内容) 我怎样才能继续打印(msg)?

UPDATED

这是我的推送:

$this->parsepush->send( array( "channels" => ['test'], "data" => > $post_data ));

在 $post_data 示例中:

$post_data = json_encode(数组 ('链接' => $link, '消息' => $message));\

我已经尝试过指令,但我也无法进行简单的打印。

从用户信息中获取值

EDIT

仍然跳过了“aps”部分。

图片1

My 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数据。仍然为零或什么都没有。

如果您想要特定的代码,只需点击下面的链接:

完整代码 AppDelegate.swift

EDIT 2

我直接使用 print(userInfo) ,打印输出是:

对象已保存。 [消息:iOS推送,aps:{ },链接:]

Update 2

我尝试从 parse.com 推送,而不是我的网站(第 3 方)。 这就是我从正常打印(userInfo)中得到的

> [aps: {
    alert = 12345abc;
    sound = default;
}]

所以我想我只需更改并添加一些内容到我的 JSON 从我的网站到:

[aps:{
   alert = $message;
   sound = default;
   link = $link;
}]

类似的东西?


正如评论中提到的,没有关键test在 APNS 有效负载中。
如果键的值message保证始终发送您可以轻松打开价值

let msg = userInfo["message"] as! String
print(msg)

否则使用可选绑定

if let msg = userInfo["message"] as? String {
    print(msg)
}

为了得到alert字典来自aps键并打印例如body字符串使用

if let aps = userInfo["aps"] as? [String:Any],
   let alertDict = aps["alert"] as? [String:String] {
    print("body :", alertDict["body"]!)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 didReceiveRemoteNotification 中获取 userInfo JSON 值 的相关文章

  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 使用 iOS 8 自定义键盘发送图像?

    我一直在为 iOS 8 开发自定义键盘 但在尝试使用键盘发送图像时偶然发现了一个问题 我做了一些研究 似乎没有一种简单的方法可以做到这一点UITextDocumentProxy因为只有NSStrings被允许 我是否忽略了使用自定义键盘发送
  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • Instagram 粉丝计数 - 使用 jQuery / json 和 PHP

    经过几个小时的工作和一些帮助萨希尔 米塔尔我们已经成功使用 jQuery json 和 PHP 检索 Instagram 关注者计数 这是我们设法整理的内容 希望对其他想要获取 Instagram 信息的人有所帮助 我们的 jQuery I
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • UIScrollView setZoomScale 将应用的旋转设置回零

    我已经从事地图替换工作很长一段时间了 整个事情的工作原理是UIScrollView由一个支持CATiledLayer 为了旋转我的地图 我旋转图层本身 使用CATransform3DMakeRotation 到目前为止效果很好 但如果我打电
  • 当我输入字符时,SwiftUI 中的 TextField 失去焦点

    当我在文本字段中输入字符时遇到问题 在练习集视图 我必须重新单击文本框才能输入另一个字符 如果我从文本字段中删除绑定 我可以流畅地输入文本 我认为这与我的演讲者班级和更新集函数重新创建一个集合实例 因为我必须替换数组中两层深处的一些值 Co
  • 是否可以使用 Firebase 安排推送通知? [复制]

    这个问题在这里已经有答案了 我已经阅读了我能找到的所有文档 但仍然不知道这是否可行 如果我是用户 我可以安排特定时间的推送通知吗 Example 1 我是用户并打开应用程序 2 我允许通知并转到 pickerView 或其他任何内容 并设置
  • 适用于 iPhone / iPad / iOS 的快速、精益 PDF 查看器 - 提示和提示?

    最近有很多关于绘制 PDF 的问题 是的 您可以使用UIWebView但这无法提供您所期望的优秀 PDF 查看器的性能和功能 您可以绘制PDF页面到 CALayer http www cocoabuilder com archive coc
  • UIButton的高亮状态由什么控制事件开始和结束

    我正在创建类似钢琴的视图UIButton作为钢琴键 什么UIControlEvents当按钮获得和失去突出显示状态时 我应该监听以获得回调吗 我试图创建子类UIButton并添加属性观察者highlighted并且运行良好 然而 有时我需要
  • 作为!与 Swift 中 Xcode 6.3 中的 as 运算符对比

    Xcode 6 3 使 Swift 发生了很大变化 我必须更换每个应用程序中的数十个位置as gt as 为什么 现在有什么规则 在 Swift 1 2 之前 as运算符可用于执行两种不同类型的转换 具体取决于要转换的表达式的类型及其要转换
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf

随机推荐

  • 可以允许来自 HTTPS 网站的 HTTP 请求吗?

    我已经安装了 非通配符 SSL 证书 以便我的网站可以使用 HTTPS 当我尝试从 HTTP url 请求资源时 我收到如下错误消息 混合内容 页面位于 https example com 已加载完毕 HTTPS 但请求不安全的样式表 ht
  • JsonSchema:根据另一个属性的值验证类型

    我正在使用以下架构来验证我的 json schema http json schema org schema title Rules description Describes a set of rules type object prop
  • 无法从 Microsoft Graph Explorer 更新 Sharepoint 托管元数据字段

    我正在尝试通过 Graph Explorer 更新与列表项关联的字段 https developer microsoft com en us graph graph explorer 或 REST API 调用 对于其中一个字段 其值可以是
  • Apache Camel Http 和 SSL

    我一直在尝试获得与 Camel 一起使用的 2 路 ssl https 代理 我已经能够使用 2 路 ssl 设置 Jetty 组件 现在尝试让它与 Http4 组件一起工作以完成代理的客户端 当我将码头流量路由到日志组件时 一切都很好 并
  • Weka GUI - 内存不足,无法加载?

    我过去也曾加载过同样的 Weka 安装 我只是尝试加载 Weka GUI 双击图标 但出现以下错误 我该如何修复它 OutOfMemory Not enough memory Please load a smaller dataset or
  • 无法在当前目录中获取脚本源

    显然 我不能source脚本 如果该脚本位于当前目录中 例如 source some dir script sh Ok 工作正常 但如果我与脚本位于同一目录中 则会出错 cd some dir source script sh sh sou
  • Java显示当前时间

    我有一个代码 可以显示运行应用程序时的当前日期和时间 DateFormat dateFormat new SimpleDateFormat yyyy MM dd HH mm ss Calendar cal Calendar getInsta
  • VIM:按函数名称排序

    我的 menu vim 文件中有很多函数 是否可以 由我 选择它们并按函数名称对它们进行排序 p e 从乐趣中找到台词 或函数 到线endfun 查找函数名称并根据函数名称对整个块进行排序 从 a z 有时我会在函数名称上方添加一行注释 可
  • CloudKit 通知

    我可能在这里遗漏了一些明显的东西 如何创建一个 CloudKit 通知 其中包含有关您收到通知的 CKRecord 的详细信息 即不仅仅是通用的 已创建新项目 而是带有记录标题的通知 例如 吉尔和杰西卡的生日派对 为每个新记录更改创建一个带
  • 如何配置 BIRT 报告引擎直接从类路径加载字体?

    我正在编写一个使用 BIRT 生成报告的 Java 应用程序 我想将自定义字体打包在 jar 文件中 并能够将它们嵌入到 PDF 报告中 我可以先将字体提取到文件系统 然后将 BIRT 指向文件系统位置 但我想知道是否可以将 BIRT 配置
  • 树枝模板内的变量 jquery

    我正在尝试使用 twig 模板内的 jquery 变量通过 ajax 发送 但我无法访问 twig 内的 jquery 变量 我的代码是
  • JPA 实体 - 指定持久性单元?

    我有一个使用多个持久性单元的 JavaEE 项目 有没有办法指定特定 JPA 实体属于哪个持久单元 一些实体位于一个数据源中 而其他实体位于我的第二个数据源中 有没有办法使用注释来区分两者 指定哪个持久单元Entity属于 使用persis
  • 为商店构建通用应用程序时出错:“清单引用文件‘MyAppName.dll’,该文件不是有效负载的一部分。”

    当尝试为 Windows 通用应用程序的商店创建应用程序包时 我在 Visual Studio 2015 中遇到此错误 清单引用文件 MyAppName dll 该文件不是有效负载的一部分 错误是在 MyAppSourcePath Pack
  • 使用 .NET(控制台应用程序)发布多个文件和表单值

    我想将多个文件和表单变量发布到 CGI 脚本 全部在oneHTTP 请求 我相信这需要一个 HTTP postmultipart form data编码 以下是发送所需信息的 HTML 表单示例 我需要通过应用程序发送相同的信息
  • ASP.NET 捆绑/缩小:包括动态生成的 Javascript

    我有一个动态生成 Javascript 的网站 生成的代码描述了类型元数据和一些服务器端常量 以便客户端可以轻松使用服务器的服务 因此它非常可缓存 生成的 Javascript 由 ASP NET MVC 控制器提供服务 所以它有一个 Ur
  • 理解 NumPy 的 einsum

    如何np einsum work 给定数组A and B 它们的矩阵乘法和转置计算使用 A B T 或等效地 使用 np einsum ij jk gt ki A B 注 这个答案是基于一个简短的博客文章 about einsum我不久前写
  • 在 Django 中过滤窗口函数

    我有以下模型 class Foobar models Model foo models IntegerField 我想出了如何计算连续的增量foo使用窗口函数的字段 qs Foobar objects annotate delta F fo
  • Node.js HTTP 响应正文的 unicode 问题

    使用本机 http 模块的 HTTP 请求的响应正文显示 unicode 字符的问号字符 而不是其实际值 这是我正在运行的基本代码片段 var http require http var google http createClient 8
  • 未定义的行为,或者:Swift 有序列点吗?

    在 C C 中 第二条语句 int i 0 int j i i i 调用两者 未指定的行为 因为操作数的求值顺序 未指定 并且 未定义的行为 因为对同一个对象的副作用i彼此之间是无序的 参见示例 为什么这些构造 使用 是未定义的行为 未定义
  • 如何在 didReceiveRemoteNotification 中获取 userInfo JSON 值

    func application application UIApplication didReceiveRemoteNotification userInfo NSObject AnyObject PFPush handlePush us