首页 > 其他分享 >unipush (iOS APP) 前台运行可收到消息,离线或后台运行收不到推送消息

unipush (iOS APP) 前台运行可收到消息,离线或后台运行收不到推送消息

时间:2023-07-25 17:04:07浏览次数:32  
标签:证书 离线 APP iOS 消息 步骤 推送 App

实现iOS App前台运行可收到消息,离线或后台运行收不到推送消息

流程步骤

步骤 内容
1 创建App证书和推送证书
2 配置App的推送能力
3 注册远程通知
4 处理接收到的推送消息
5 处理App在不同状态下收到推送消息的情况

步骤详解

步骤1:创建App证书和推送证书

在Apple开发者网站上创建App的开发证书和推送证书,并下载到本地。具体步骤如下:

  1. 打开Apple开发者网站,登录开发者账号。
  2. 进入"Certificates, Identifiers & Profiles"页面。
  3. 选择App对应的App ID,创建开发证书。
  4. 创建推送证书,并选择App对应的App ID,并生成CSR文件。
  5. 下载生成的开发证书和推送证书。

步骤2:配置App的推送能力

在Xcode中对App进行配置,使其具备接收推送消息的能力。具体步骤如下:

  1. 打开Xcode,选择对应的App工程。
  2. 进入"Signing & Capabilities"页面。
  3. 点击"+"按钮,添加"Push Notifications"能力。
  4. 选择App对应的推送证书。

步骤3:注册远程通知

在App的代码中注册远程通知,以便接收推送消息。具体步骤如下:

  1. 在AppDelegate文件中导入UserNotifications库:import UserNotifications
  2. didFinishLaunchingWithOptions方法中添加以下代码:
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}

此代码用于请求用户授权接收通知,并在用户授权后注册远程通知。

步骤4:处理接收到的推送消息

在App的代码中处理接收到的推送消息,以便在前台时能够收到并展示通知。具体步骤如下:

  1. 在AppDelegate文件中添加以下方法:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any]) {
    // 处理接收到的推送消息
}

此方法会在接收到推送消息时触发,可以在方法中处理接收到的推送消息。

步骤5:处理App在不同状态下收到推送消息的情况

根据App在前台、离线或后台运行时收到推送消息的不同情况,做出相应的处理。具体步骤如下:

  1. 在AppDelegate文件中添加以下方法:
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    // 处理App在前台收到推送消息的情况,展示通知
    completionHandler([.alert, .sound, .badge])
}

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
    // 处理App在离线或后台运行收到推送消息的情况
    completionHandler()
}

这两个方法分别对应App在前台和离线或后台运行时收到推送消息的情况。在willPresent方法中可以配置展示通知的方式,如弹窗、声音、角标等。在didReceive方法中可以处理用户点击推送通知的操作。

以上就是实现iOS App前台运行可收到消息,离线或后台运行收不到推送消息的步骤和代码。通过以上步骤,你可以在你的小白朋友的App中成功实现推送消息的功能。

标签:证书,离线,APP,iOS,消息,步骤,推送,App
From: https://blog.51cto.com/u_16175497/6846947

相关文章

  • uniapp 打iOS测试包 到蒲公英进行分发测试
    使用Uniapp打iOS测试包并分发到蒲公英进行测试在移动应用开发中,我们通常需要将我们的应用打包成测试包进行测试。对于Uniapp开发的应用程序,我们可以使用一些工具来帮助我们打包iOS测试包,然后将其分发到蒲公英等平台进行测试。本文将为您介绍如何使用Uniapp打iOS测试包并分发到蒲公......
  • ubuntun离线安装docker
    在Ubuntu上离线安装Docker介绍Docker是一个开源的容器化平台,可以简化应用程序的部署和管理。本文将向你展示如何在Ubuntu操作系统上进行离线安装Docker。步骤概述下面的表格总结了整个过程的步骤:步骤描述1在联网的计算机上下载Docker软件包及其依赖项2将软件包......
  • uniapp,打开安卓系统设置的应用信息页面或者耗电详情页面(用于用户手动设置后台启动)
    openSettings(){ varmain=plus.android.runtimeMainActivity(); //varpkName=main.getPackageName();//获取包名 //varuid=main.getApplicationInfo().plusGetAttribute("uid"); varIntent=plus.android.importClass('android.conte......
  • uni-app 中模拟器真机运行项目
    1.安装模拟器MuMu 2.配置环境变量找到HbuilderX的安装目录,查找adb.exe文件,复制serve.exe所在文件目录的路径,配置到系统变量的Path中         3.在模拟器中进行配置注意:端口为7555不同模拟器的默认端口是不一样的adb的路径一定是HbuilderX的adb路径,使......
  • axios学习
    官网:Axios中文文档|Axios中文网|Axios是一个基于promise的网络请求库,可以用于浏览器和node.js(axios-http.cn)axios的文档非常简单,配合网上的封装axios使用示例。再阅读官网文档,大概一个小时就能阅读完文档,就可以使用了。 ......
  • 用axios有遇到什么问题
    使用axios时遇到的问题解析及解决方法在前端开发中,发送HTTP请求是非常常见的操作,而axios是一个流行的JavaScript库,可以帮助我们轻松地进行网络请求。然而,在实际使用axios时,我们可能会遇到一些问题。本文将探讨使用axios时可能会遇到的问题,并提供解决方法。问题1:跨域请求被拒绝一......
  • Appium手机端自动化详解 ——>改
    1:使用appium自动化手机app时机型的选择建议使用机型:pix(谷歌原生的手机),三星,索尼,小米,魅族这些手机系统定制化没有那么深,可以appium进行自动化,遇到的问题比较少,遇到问题尝试升级系统解决,那么不需要更换手机不建议使用机型:oppo,vivo,华为(部分华为,有些机型有问题)这些......
  • 学好Elasticsearch系列-Mapping
    本文已收录至Github,推荐阅读......
  • 小程序蓝牙配网--安卓与IOS的区别
    1.getWifiList接口:IOS无法获取WiFi列表,只有安卓能够获取。IOS可以通过getConnectedWifi接口获取当前已连接的WIFI名,可以适当给予用户引导2.配网过程:安卓可以事先写死serviceId(0000FFFF-0000-1000-8000-00805F9B34FB)与characteristicId(0000FF02-0000-1000-8000-00805F9B34FB),以......
  • fix: fix: Apple Watch无法解锁MBP
    TLDRnozuonodie.尽量别修改用了挺久的设备名...前言最近突然发现,AppleWatch不能解锁Macbook了参考网上的帖子,经过N次重启,总算解决问题了...解决步骤钥匙串访问(keychain)打开钥匙串访问可以用spotlight搜索“钥匙串访问“或者“keychain”修改显示方式......