iOS(Swift版)Flutter集成关键步骤

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS(Swift版)Flutter集成关键步骤相关的知识,希望对你有一定的参考价值。

参考技术A 1.在项目目录执行 flutter create -t module XXX(flutter模块名) ;
2.修改Podfile,设置path,关联podhelper.rb,注意采用 load File.join() ,不采用之前的eval语句,在target do下install;
3.执行pod install;
4.修改AppDelegate为FlutterAppDelegate;
5.初始化并注册FlutterEngine;
6.vscode里flutter attach实时调试;
做完这些正常开发是可以了,至于打包需要更改什么再续。

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

前提条件


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...https://www.imgeek.org/article/825361216

以上是关于iOS(Swift版)Flutter集成关键步骤的主要内容,如果未能解决你的问题,请参考以下文章

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

swift 添加友盟sdk swift 如何桥接oc Flutter接入友盟 by ios swift

使用 Swift 创建 Flutter 项目

关于 Flutter IOS混合开发打包Framework集成到原生IOS工程 和 flutter_boost使用

Flutter3引用原生播放器-IOS(Swift)篇

iOS swift quickblox 集成