环信 flutter sdk集成IM离线推送及点击推送获取推送信息(iOS版)

12 篇文章 1 订阅

前提条件


1.macOS系统,安装了xcode和flutter集成环境

2.有苹果开发者账号

3.有环信开发者账号

(注册地址:https://console.easemob.com/user/register

4.参考这篇文章https://www.imgeek.org/article/825360043,完成推送证书的创建和上传
 

集成IM离线推送


1.创建一个新的项目

2.导入flutterSDK

3.初始化环信sdk

void initSDK() async {

  var options = EMOptions(

    appKey: “你的appkey”,

  );

  options.enableAPNs("EaseIM_APNS_Developer");

  await EMClient.getInstance.init(options);

  debugPrint("has init");

}

EaseIM_APNS_Developer是你在环信后台创建的证书名,需要注意,iOS需要上传开发证书和生产证书

4.可以在 _incrementCounter 这个按钮点击事件中调用一下登录操作,到此flutter层的工作已经完成

5.打开原生项目,修改包名,添加推送功能

6.打开AppDelegate 文件 导入im_flutter_sdk,并且在didRegisterForRemoteNotificationsWithDeviceToken方面里面调用环信的registerForRemoteNotifications方法,进行token的绑定

注:IM离线推送机制:

1.环信这边需要针对设备deviceToken和环信的username进行绑定,

2.IMserver 收到消息,会检测接收方是否在线,如果在线直接投递消息,如果不在线,则根据username 取设备的deviceToken

3.根据设备的deviceToken 和 上传的证书给设备推送消息

4.当app第一次运行的时候,就会走didRegisterForRemoteNotificationsWithDeviceToken方法,这个时候绑定token信息会报错,这个时候是正常的,因为你并没有登录,此时SDK内部会保存deviceToken,当你调用登录接口成功之后,SDK内部会进行一次绑定token的操作,

到此,推送功能已经集成完毕,注意测试时建议先把项目杀死,保证该用户已经离线

点击推送获取推送信息

第一种方法 自己做桥接,实现原生层与flutter层做交互

第二种方法 可以利用先有api 实现原生层给flutter层传递消息

今天主要介绍第二种方法

1.打开原生层 在didFinishLaunchingWithOptions和didReceiveRemoteNotification 方法里调用EMClientWrapper.shared().sendData(toFlutter: userInfo) 方法,把需要传递的数据传到flutter层

didFinishLaunchingWithOptions 是在app没有打开的情况下点击推送,从launchOptions里面拿到推送信息

didReceiveRemoteNotification是在 app已经打开的情况下点击推送,从userInfo里面拿到推送信息

如下图所示

2.打开flutter层 调用EMClient.getInstance.customEventHandler方法 需要赋值一个函数,这个函数就是接受来自原生层传递过来的消息

3.此时 点击推送消息 在flutter层就能获取到信息,如图我测试的结果

完毕

原文地址:环信 flutter sdk集成IM离线推送及点击推送获取推送信息(iOS版) - IM Geek开发者社区-移动开发者社区-开源社区-IM Geek官网环信 flutter sdk集成IM离线推送及点击推送获取推送信息(iOS版) - 前提条件1.macOS系统,安装了xcode和flutter集成环境2.有苹果开发者账号3.有环信开发者账号(注册地址:https://console.easemob.com/user/register)4.参考这篇文章https://www.imgeek...icon-default.png?t=N7T8https://www.imgeek.org/article/825361216

相关文档:

注册环信:环信即时通讯云

集成文档:产品概述 | 环信 IM 文档

imgeek社区支持:环信开发者社区-为移动开发者提供IM服务 - IM Geek开发者社区-移动开发者社区-开源社区-IM Geek官网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值