全新重新安装后删除 iOS 推送通知

2024-02-03

我有一个已成功集成苹果推送通知的应用程序,当用户登录到应用程序时,应用程序会注册推送通知,并且令牌会保存在我们的后端,当用户从应用程序注销时,我们会从我们的应用程序中删除推送通知令牌后端。但是如果用户在没有从应用程序注销的情况下从设备上卸载应用程序,然后重新安装,在这种情况下我们仍然可以向设备发送推送通知,因为应用程序是新安装的并且没有登录任何用户,我们必须删除令牌从后端。由于 iOS 应用程序没有任何用于卸载事件的 API,我如何从后端删除设备令牌。我可以使用推送通知反馈服务来获取已卸载的设备令牌,但是当用户删除应用程序然后重新安装时如何解决问题。

我用skype测试了这个场景,也有这个问题。 (安装 Skype > 登录 >(现在您可以将应用程序发送到后台并从任何其他设备发送一些聊天,您将收到推送通知)> 然后从设备中删除应用程序,无需从 Skype 注销 > 重新安装 Skype > 现在如果我们发送 Skype 聊天 我们收到推送通知,但 Skype 应用程序是新安装的,没有人登录)


我想您能做的最好的事情就是在没有登录用户的情况下启动应用程序时预防性地取消注册/删除令牌。无论如何,您应该在每次启动应用程序时更新注册,因此在每次应用程序启动时注册/注销,具体取决于用户是否登录。这样,如果用户重新安装应用程序并第一次启动它,它将被取消注册。

这是您可以实现的最佳行为,因为 Twitter、Facebook、Skype 等也是如此......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全新重新安装后删除 iOS 推送通知 的相关文章

  • 在 swift 中使用协议作为数组类型和函数参数

    我想创建一个可以存储符合某种协议的对象的类 对象应该存储在类型数组中 根据 Swift 文档 协议可以用作类型 因为它是一种类型 所以您可以在许多允许其他类型的地方使用协议 包括 作为函数 方法或初始值设定项中的参数类型或返回类型 作为常量
  • UICollectionView 上的 UIRefreshControl 仅当集合填充容器的高度时才起作用

    我正在尝试添加一个UIRefreshControl to a UICollectionView 但问题是 除非集合视图填满其父容器的高度 否则刷新控件不会出现 换句话说 除非集合视图足够长需要滚动 否则无法将其下拉以显示刷新控制视图 一旦集
  • 如何在 flutter 插件的 Swift 编写的 iOS 部分中使用 Objective-C 框架

    In a 颤振插件 我想用一个Objective C我的框架iOS部分用swift编写 然后将其用于使用 Swift 的 Flutter 项目作为 iOS 语言 经过一些研究 我不是 iOS 开发人员 后 我发现我想要做的事情可以通过导入文
  • 如何在 iPhone 中以编程方式访问保存的图像中的图像而不使用 UIimagePickerController?

    我知道如何让用户从 UIImagePickerController 选择图像 但我不想要那样 我只想将 NSArray 图像存储在手机中 但我不想让用户参与 选择一个然后拥有该图像 相反 我创建了自己的自定义图像选择器控制器并希望有画廊作为
  • 如何使用 Restkit 0.20.0 创建/发布新的托管对象到服务器?

    我很难找到创建新托管对象 设置其值以及使用 Restkit 保存到服务器的文档或示例 我有一篇 NSManagedObject 帖子 interface Post NSManagedObject property nonatomic ret
  • 所有 UI 前面的透明 UIImageView

    首次启动我的应用程序后 我想向用户展示一些教程 以解释我的应用程序的功能 所以我需要设置一个带有一些箭头和标签的透明 UIImageView 其中主 UI 更具体地说 tabbarcontroler 中的 navigationviewcon
  • iPhone 上的 TCP 打洞

    我已经阅读了一些内容 虽然我是 iPhone 网络的新手 但我想知道 TCP 打孔是否可以通过 NAT 连接两台 iPhone 我还阅读了一些有关 uPnP 和发夹的有用内容 但我根本不熟悉这些内容 所以如果有人对这是否可能有任何想法 我的
  • 如何使用 NSUndoManager 支持替换 UITextView 中的文本?

    我希望能够以编程方式替换 UITextView 中的某些文本 因此我将此方法编写为 UITextView 类别 void replaceCharactersInRange NSRange range withString NSString
  • 使用 NSPredicate 来检测 NOT CONTAINS

    我放弃 我已经尝试了我能想象到的所有组合来检查一个字符串是否包含另一个字符串 这是描述我想要做的事情的直观语法示例 NSPredicate pPredicate NSPredicate predicateWithFormat NOT K C
  • TabBarController:以不同方向定向视图

    我无法保持当前的观点方向 在下面的设置中 我能够将第一个视图控制器锁定为纵向 将第二个视图控制器锁定为横向或纵向 但是 当我向选项卡控制器添加第二个导航控制器 rootviewcontroller 时 整个项目中的所有视图都将变为横向和纵向
  • 更新表格视图图像子视图中的图像的最佳方法是什么?

    具体来说 如何从 uitableview 单元格中获取图像子视图 我的表视图从网络异步获取数据 当我第一次创建图像视图时 我通过以下方式添加了视图 imageView setImage image cell addSubview image
  • 如何从静态图像中读取二维码

    我知道你可以使用AVFoundation使用设备的摄像头扫描 QR 码 现在问题来了 我该如何从静态中做到这一点UIImage object Neimsz 的 Swift 4 版本answer https stackoverflow com
  • cllocation 和 mkreversegeocoder

    我尝试使用 cllocation 和 mkreversegeocoder 检索城市名称 在我的 viewdidload 方法中 我是 cllocationmanager self locManager CLLocationManager a
  • 在 iphone safari 浏览器中禁用浏览或选择文件按钮

    我想知道为什么select file or choose file在 iphone safari 中查看网页时 该按钮被禁用 谁能告诉我为什么会发生这种情况有什么方法可以启用它吗 谢谢 因为您无法从 iPhone 上传文件
  • 如何通过 swift 包管理器在 swift 项目中添加 Alamofire [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在探索 SPM 现在我需要知道如何在我的项目中通过 SPM 导入 Alamofire 创建一个名为的 swift 文件Package在你
  • 应用程序图标上的快捷方式项目不适用于 iOS 13

    为了支持应用程序图标上的快捷方式项目 我们在中实现了以下方法SceneDelegate func windowScene windowScene UIWindowScene performActionFor shortcutItem UIA
  • UIButton 图像调整大小/缩放以适合

    我有一个非常严重的问题 我不知道如何解决 我正在对 UIButtons 框架进行动画处理 当我对其进行动画处理时 我希望按钮中的图像缩放到与按钮相同的大小 它无需在我的 iPhone 模拟器上执行任何操作即可运行 但是当我在 iPad 模拟
  • 如何模拟应用程序在后台被杀死?

    我试图验证我的应用程序 App1 在启动另一个应用程序 App2 后被系统关闭时行为是否正确 有什么方法可以模拟或强制这种行为吗 在 App2 运行时告诉模拟器模拟内存警告不会执行任何操作 直到 App1 返回前台为止 从调试器中杀死 Ap
  • 如果以前录制并播放了电影,AVAudioRecorder 将不会录制

    我的 iPhone 应用程序使用 AVAudioRecorder 进行录音 它还使用 UIImagePickerController 来录制电影 使用 MPMoviePlayerController 来播放电影 一切正常 直到我连续完成所有
  • iPhone 操作系统测试最佳实践

    不久前 iPhone 的开发还相当简单 只有几个操作系统版本 甚至更少的设备 然而现在 有 2 个主要操作系统版本和 5 种不同的设备需要考虑 作为一家即将发布多个应用程序的公司 测试已成为越来越重要的问题 测试所有组合的最佳方法是什么 我

随机推荐