iOS

注意事项

注意事项:融云 SDK 的 IM 红包功能是由一路魔方科技提供的服务,若您的 App 之前已集成过一路魔方的红包 SDK,为了保证两个平台数据兼容和一致性,请提交工单咨询帮助,感谢您的配合。

点击查看红包使用说明书红包业务常见问题

您可以在红包统计中查看红包的数据统计情况。

只要按照下面的步骤正常的集成了红包 SDK,那么就可以在 App 中正常使用红包功能,不需要再申请开通。

红包 SDK 从 2.8.5 版本开始支持 HTTPS,如果您使用的是 2.8.2 至 2.8.4 版本的红包 SDK,那么请参考红包 SDK 的 ATS 设置

开始集成扩展模块需要以下几步:

一、把红包 SDK 文件夹拷贝到项目文件夹下,并导入到项目工程中。

二、Build Settings 中 Other Linker Flags 添加 -ObjC 。

三、添加系统依赖库:

  • CoreMotion.framework
  • CoreText.framework

四、从红包 SDK 2.8.5 版本开始支持 HTTPS,如果需要使用 HTTP 协议,需要在 App 项目的 plist 手动添加以下 key 和 value 来支持。

<key>NSAppTransportSecurity</key>
  <dict>
<key>NSAllowsArbitraryLoads</key>
   <true/>
  </dict>

五、需要在 AppDelegate.m 中加入如下代码处理:

  1. Application:didFinishLaunchingWithOptions: 函数中初始化融云之后,为红包扩展设置 URL scheme。
//初始化融云SDK
[[RCIM sharedRCIM] initWithAppKey:RONGCLOUD_IM_APPKEY];
//设置红包扩展的Url Scheme。
[[RCIM sharedRCIM] setScheme:@"rongcloudRedPacket" forExtensionModule:@"JrmfPacketManager"];

说明:

scheme: 支付宝支付成功后,回调您的应用时使用,如果有另一个 App 与您的 scheme 相同,则红包发送失败,建议用应用名+功能名组合模式定义您的 scheme;如果您在使用红包之前已经使用了支付宝,那么红包的 scheme 要和之前支付宝的 scheme 分开,保证红包的 scheme 仅用于红包。

extensionModule:红包 SDK 默认值为 JrmfPacketManager 不能修改。

  1. 在 Appdelegate.m 中添加 openUrl 处理函数。
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
 if ([[RCIM sharedRCIM] openExtensionModuleUrl:url]) {
   return YES;
 }
 return YES;
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
 if ([[RCIM sharedRCIM] openExtensionModuleUrl:url]) {
   return YES;
 }
 return YES;
}
  1. 最后在 Info.plist 添加对应的 scheme(Scheme 为下述支付宝回调参数)。

image

六、支持支付宝支付,需将 AlipaySDK 文件夹如上导入,并在 Build Phases 选项卡的 Link Binary With Libraries 中,增加以下依赖:

image

七、在 App 合适位置添加“我的钱包”入口,在调用钱包时,需要引入头文件:

低于 2.8.5 版本

#import <JrmfPacketKit/JrmfPacketManager.h>

调用方法:

[JrmfPacketManager getEventOpenWallet];

2.8.5 及更高版本

#import <JrmfWalletKit/JrmfWalletKit.h>

调用方法:

[JrmfWalletSDK openWallet];

获取红包版本的方法

#import <JrmfPacketKit/JrmfPacketManager.h>

调用方法:

[JrmfPacketManager getCurrentVersion];

八、如想在群组中实现红包功能,需要实现以下代理,提供群组成员数据给融云 SDK:

//RCIM Class

/*!
群组成员列表提供者
*/
@protocol RCIMGroupMemberDataSource <NSObject>
@optional

/*!
获取当前群组成员列表的回调

@param groupId     群ID
@param resultBlock 获取成功 [userIdList:群成员ID列表]
*/
- (void)getAllMembersOfGroup:(NSString *)groupId
result:(void (^)(NSArray<NSString *> *userIdList))resultBlock;
@end