IM集成攻略手把手教你环信对接离线推送,再搞不定把你头打掉
Posted 环信即时通讯云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IM集成攻略手把手教你环信对接离线推送,再搞不定把你头打掉相关的知识,希望对你有一定的参考价值。
前提条件
1.macOS系统,安装了xcode,并且配置好了cocoapods第三方管理工具
2.有苹果开发者账号
3.有环信开发者账号
(注册地址:https://console.easemob.com/user/register)
在苹果开发者中心创建项目,注册推送证书.
1.登录苹果开发者中心.
(请用自己的苹果开发者账号)
2.苹果开发者中心创建 - Identifiers.
(name - empushdemo )
(identifier - com.yyytp.empushdemo )
3.钥匙串 - 从证书颁发机构请求证书
(本机证书)
4.针对刚创建的bundle id开通并注册Certificates push 证书
(注册 可以在开发和生产双环境下使用的推送证书)
5.安装证书到本机,并导出 push - p12
(这里需要格外注意操作步骤!不能展开!!!要闭合的状态导出!!!)
(因为申领的证书是双环境的,所以导出的p12文件直接复制成双份即可)
(开发证书名称 : yyytp_empush_apns_dev)
(生产证书名称 : yyytp_empush_apns_pro)
(密码 : 不告诉你)
以上是在苹果开发者中心做了两件事
1.创建了bundleid为com.yyytp.empushdemo的app
2.创建推送证书 apns-2.cer 并导出了 (.p12) 证书,复制为2份,分别命名为 yyytp_empush_apns_dev 和 yyytp_empush_apns_pro 密码是 123456
其中两份p12证书内容是完全一样的,只是命名不同,都适用于开发和生产环境,不过为了后期导入环信后台时方便辨识
===========分割线===========================
在环信console后台创建一个appkey,顺带创建一个测试username
1.登录环信console后台:https://console.easemob.com/user/login
2.创建appkey
(app_name : showpushdemo )
3.创建一个测试账号
(测试账号 : emtest 密码 1 )
========分割线=======================
在环信console后台中上传推送证书(.p12文件)
注意!!!是在刚才创建的appkey(1168171101115760#showpushdemo)下创建证书!!!
(这里需要注意的细节是:证书名不能有中文和其他特殊符号!!! 建议 字母 + 下划线)
(所以我会采用 yyytp_empush_apns_dev / yyytp_empush_apns_pro 这样的命名方式)
最终效果
=========分割线=======================
在代码中实现
1.创建项目
em_push_showdemo
2.集成环信SDK
pod 'HyphenateChat' , '3.9.0'
3.配置项目
4.代码部分如下:
下面代码是AppDelegate.m的所有代码,可直接复制粘贴
下面代码是AppDelegate.m的所有代码,可直接复制粘贴
下面代码是AppDelegate.m的所有代码,可直接复制粘贴
//
// AppDelegate.m
// em_push_showdemo
//
// Created by flower on 2022/3/14.
//
#import "AppDelegate.h"
#import
#import
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
// Override point for customization after application launch.
/*
1.注册环信SDK
2.注册推送
注册成功之后 绑定至环信SDK
3.登录账号
*/
[self _registerEMCHAT];
[self _registerSysPush];
[self _loginEMCHAT];
return YES;
- (void)_registerEMCHAT
EMOptions *options = [EMOptions optionsWithAppkey:@"1168171101115760#showpushdemo"];
options.apnsCertName = @"yyytp_empush_apns_dev";
options.isAutoLogin = false;
options.usingHttpsOnly = true;
[EMClient.sharedClient initializeSDKWithOptions:options];
- (void)_registerSysPush
[UNUserNotificationCenter.currentNotificationCenter
requestAuthorizationWithOptions:
UNAuthorizationOptionBadge|
UNAuthorizationOptionSound|
UNAuthorizationOptionAlert
completionHandler:^(BOOL granted, NSError * _Nullable error)
if (granted)
dispatch_async(dispatch_get_main_queue(), ^
[UIApplication.sharedApplication registerForRemoteNotifications];
);
];
- (void)_loginEMCHAT
[EMClient.sharedClient loginWithUsername:@"emtest" password:@"1" completion:^(NSString *aUsername, EMError *aError)
if (aError)
NSLog(@"登录失败");
else
NSLog(@"登录成功");
//下面这个updatePushDisplayStyle是设置显示效果,有两种显示效果可以设置.详情可查看枚举值(EMPushDisplayStyleSimpleBanner)的定义
[EMClient.sharedClient.pushManager updatePushDisplayStyle:EMPushDisplayStyleSimpleBanner completion:^(EMError * _Nonnull aError)
];
];
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
NSLog(@"绑定成功");
dispatch_async(dispatch_get_main_queue(), ^
[EMClient.sharedClient bindDeviceToken:deviceToken];
);
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
@end
4.运行至手机,运行完成后,退出APP,发送消息测试推送.
以上是关于IM集成攻略手把手教你环信对接离线推送,再搞不定把你头打掉的主要内容,如果未能解决你的问题,请参考以下文章
环信 flutter sdk集成IM离线推送及点击推送获取推送信息(iOS版)
从零开始,对接环信IM iOS SDK(无UI界面)实现登录与发送消息