苹果 APNs 介绍

本文详细介绍了如何在 iOS 应用中配置和使用 Apple 的推送通知服务(APNs),包括开启推送功能、App ID 设置、Xcode 项目配置、客户端App代码流程、deviceToken处理、静默与普通推送的区别、服务端推送方式(基于Token和证书)以及参考资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

APNs 是 Apple 的推送通知服务,它使第三方开发人员能够向安装在 Apple 设备上的App发送消息通知。

此文主要介绍如何让App支持 APNs。

开启推送功能

App ID 支持推送

登录苹果开发者网站,进入 Certificates, Identifiers & Profiles 页面,点击侧边栏中的 Identifiers,然后在列表中找到项目对应的 App ID(即 Xcode 项目中的 Bundle Identifier),点击并进入配置编辑页面,然后选择 Push Notifications 旁边的复选框,最后点击右上的 Save(保存)按钮,结果如下图所示:
在这里插入图片描述

App 工程配置推送功能

要在App中添加推送权限,请在 Xcode 项目中启用推送通知功能。
打开 Xcode 项目,在 Project > Target > Capabilities 页面中点击红框中的加号按钮,然后选择并添加 Push Notifications,添加后的结果如图中黄框所示:
在这里插入图片描述
在这里插入图片描述

App 代码设置流程

客户端App基本流程

  1. 注册通知;
  2. 向苹果APNs服务请求deviceToken;
  3. 把拿到的deviceToken发给消息推送服务器;(三方的or自己的)
  4. 处理通知相关回调方法;

关于deviceToken

  1. 同手机不同App, deviceToken不同;
  2. 同一个App删除, 重新安装deviceToken会变化;
    (以上结论由实测验证得出)

注册通知

App Code


Podfile
pod 'LeanCloudObjc'   # 集成所有服务模块

#import <UserNotifications/UserNotifications.h>
#import <LeanCloudObjc/Foundation.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   
    // Override point for customization after application launch.
   /// necessary code ignore...
    
    [self setNormalPushNotification];
    
    return YES;
}

#pragma mark -
#pragma mark APNs

/// 初始化普通推送
- (void)setNormalPushNotification {
   
    [self initPushSrv];
    
    if (@available(iOS 10.0, *)) {
   
        [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge|UNAuthorizationOptionSound|UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
   
            NSLog(@"是否允许通知: %d", granted);
        }];
    } else {
   
        // Fallback on earlier versions
    }
    
    [[UIApplication sharedApplication] registerForRemoteNotifications];
    
    // ⚠️注意: 如果不设置delegate,普通推送也会走didReceiveRemoteNotification
    if (@available(iOS 10.0, *)) {
   
        [[UNUserNotificationCenter currentNotificationCenter] setDelegate:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值