React Native的网易云信插件
欢迎加入QQ群交流`153174456`
## Demo
[react-native-chat-demo](https://github.com/reactnativecomponent/react-native-chat-demo)
### 注意事项:
##### 2.普通帐号不要使用5位数,因为5位数设定是系统帐号,尽量使用6位或者6位以上
## 1.安装
- ### 0.60以下请使用2.1.0版本
```bash
npm install react-native-netease-im 或者 yarn add react-native-netease-im
cd ios
pod install
```
## 2.配置
### 2.1 android配置
在`android/app/build.gradle`里,defaultConfig栏目下添加如下代码:
```
multiDexEnabled true
manifestPlaceholders = [
// 如果有多项,每一项之间需要用逗号分隔
NIM_KEY: "云信的APPID" //在此修改云信APPID
]
```
在`AndroidManifest.xml`里,添加如下代码:
```
< manifest
......
<!-- SDK 权限申明 -->
<permission
android:name="${applicationId}.permission.RECEIVE_MSG"
android:protectionLevel="signature"/>
<!-- 接收 SDK 消息广播权限 -->
<uses-permission android:name="${applicationId}.permission.RECEIVE_MSG"/>
......
< application
......
<!-- 设置你的网易聊天App Key -->
<meta-data android:name="com.netease.nim.appKey" android:value="${NIM_KEY}" />
```
`android/app/src/main/java/<你的包名>/MainActivity.java`
```
import com.netease.im.uikit.permission.MPermission;
import com.netease.im.RNNeteaseImModule;
import com.netease.im.ReceiverMsgParser;
public class MainActivity extends ReactActivity {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(ReceiverMsgParser.checkOpen(getIntent())){//在后台时处理点击推送消息
RNNeteaseImModule.launch = getIntent();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
MPermission.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}
```
`android/app/src/main/java/<你的包名>/MainApplication.java`中添加如下两行:
```
...
import com.netease.im.RNNeteaseImPackage;
import com.netease.im.IMApplication;
import com.netease.im.ImPushConfig;
public class MainApplication extends Application implements ReactApplication {
@Override
public void onCreate() {
// IMApplication.setDebugAble(BuildConfig.DEBUG);
// 推送配置,没有可传null
ImPushConfig config = new ImPushConfig();
// 小米证书配置,没有可不填
config.xmAppId = "";
config.xmAppKey = "";
config.xmCertificateName = "";
// 华为推送配置,没有可不填
config.hwCertificateName = "";
IMApplication.init(this, MainActivity.class,R.drawable.ic_stat_notify_msg, config);
...
}
}
```
#### 2.2 ios配置
在你工程的`AppDelegate.m`文件中添加如下代码:
```
...
#import <NIMSDK/NIMSDK.h>
#import "NTESSDKConfigDelegate.h"
@interface AppDelegate ()
@property (nonatomic,strong) NTESSDKConfigDelegate *sdkConfigDelegate;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
[self setupNIMSDK];
[self registerAPNs];
if (launchOptions) {//未启动时,点击推送消息
NSDictionary * remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (remoteNotification) {
[self performSelector:@selector(clickSendObserve:) withObject:remoteNotification afterDelay:0.5];
}
}
...
return YES;
}
- (void)clickSendObserve:(NSDictionary *)dict{
[[NSNotificationCenter defaultCenter]postNotificationName:@"ObservePushNotification" object:@{@"dict":dict,@"type":@"launch"}];
}
- (void)setupNIMSDK
{
//在注册 NIMSDK appKey 之前先进行配置信息的注册,如是否使用新路径,是否要忽略某些通知,是否需要多端同步未读数
self.sdkConfigDelegate = [[NTESSDKConfigDelegate alloc] init];
[[NIMSDKConfig sharedConfig] setDelegate:self.sdkConfigDelegate];
[[NIMSDKConfig sharedConfig] setShouldSyncUnreadCount:YES];
//appkey 是应用的标识,不同应用之间的数据(用户、消息、群组等)是完全隔离的。
//注册APP,请将 NIMSDKAppKey 换成您自己申请的App Key
[[NIMSDK sharedSDK] registerWithAppID:@"appkey" cerName:@"证书名称"];
}
#pragma mark - misc
- (void)registerAPNs
{
[[UIApplication sharedApplication] registerForRemoteNotifications];
UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[[NIMSDK sharedSDK] updateApnsToken:deviceToken];
}
//在后台时处理点击推送消息
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{
[[NSNotificationCenter defaultCenter]postNotificationName:@"ObservePushNotification" object:@{@"dict":userInfo,@"type":@"background"}];
}
- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"fail to get apns token :%@",error);
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSInteger count = [[[NIMSDK sharedSDK] conversationManager] allUnreadCount];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:count];
}
```
## 如何使用
### 引入包
```
import {NimSession} from 'react-native-netease-im';
```
### API
参考[index.js](https://github.com/reactnativecomponent/react-native-netease-im/blob/master/index.js)
#### 监听会话
```
NativeAppEventEmitter.addListener("observeRecentContact",(data)=>{
console.log(data); //返回会话列表和未读数
});
```
#### 推送(推送配置参考官方文档即可)
```
//程序运行时获取的推送点击事件
NativeAppEventEmitter.addListener("observeLaunchPushEvent",(data)=>{
console.log(data);
});
//程序后台时获取的推送点击事件
NativeAppEventEmitter.addListener("observeBackgroundPushEvent",(data)=>{
console.log(data);
});
//推送数据格式
{
...
sessionBody:{
sessionId:"",
sessionType:"",
sessionName:""
}
}
```
没有合适的资源?快使用搜索试试~ 我知道了~
网易云信ReactNative组件_Java_Objective-C_下载.zip
共233个文件
java:136个
h:34个
m:31个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 14 浏览量
2023-04-24
14:09:27
上传
评论
收藏 1.04MB ZIP 举报
温馨提示
网易云信ReactNative组件_Java_Objective-C_下载.zip
资源推荐
资源详情
资源评论
收起资源包目录
网易云信ReactNative组件_Java_Objective-C_下载.zip (233个子文件)
IPackageDataObserver.aidl 990B
IPackageStatsObserver.aidl 394B
PackageStats.aidl 53B
index.dat 41KB
.gitignore 85B
build.gradle 2KB
ConversationViewController.h 3KB
NTESBundleSetting.h 3KB
TeamViewController.h 2KB
NIMKit.h 2KB
ImConfig.h 2KB
NTESGlobalMacro.h 2KB
NIMModel.h 1KB
NTESGroupedDataCollection.h 1KB
ContactViewController.h 1KB
NIMMessageMaker.h 1004B
NoticeViewController.h 972B
NIMKitTimerHolder.h 848B
NTESSpellingCenter.h 780B
NIMKitDataProvider.h 779B
NIMKitNotificationFirer.h 770B
NIMKitInfo.h 761B
NIMViewController.h 722B
NIMKitUtil.h 672B
NSDictionary+NTESJson.h 611B
NIMKitLocationPoint.h 583B
BankListViewController.h 549B
NIMKitInfoFetchOption.h 495B
NIMObject.h 475B
NSString+NIMKit.h 377B
DWCustomAttachment.h 366B
NTESPinyinConverter.h 298B
NTESContactDataMember.h 288B
NTESClientUtil.h 285B
DWCustomAttachmentDecoder.h 283B
RNNotificationCenter.h 269B
NTESGroupedContacts.h 265B
NTESSDKConfigDelegate.h 249B
NIMKitDataProviderImpl.h 244B
RNNeteaseIm.h 206B
MiPush_SDK_Client_3_6_2.jar 667KB
RNNeteaseImModule.java 71KB
ReactCache.java 51KB
SessionService.java 37KB
NetworkUtil.java 25KB
PinYin.java 20KB
TeamDataCache.java 15KB
SysMessageObserver.java 15KB
ImageUtil.java 15KB
IMApplication.java 13KB
RecentContactObserver.java 13KB
TeamNotificationHelper.java 11KB
TimeUtil.java 11KB
NimUserInfoCache.java 10KB
SessionUtil.java 10KB
AudioPlayerM.java 9KB
ImageLoaderKit.java 9KB
AttachmentStore.java 9KB
AudioPlayService.java 9KB
BitmapDecoder.java 9KB
FriendDataCache.java 9KB
FileCacheUtil.java 8KB
LoginService.java 7KB
BaseMPermission.java 7KB
MPermission.java 6KB
AitHelper.java 6KB
MessageConstant.java 5KB
ReceiverMsgParser.java 5KB
TextSearcher.java 5KB
FriendObserver.java 5KB
RNPinYinModule.java 5KB
AbsContactDataList.java 5KB
FriendListService.java 5KB
TeamListService.java 5KB
AudioMessageService.java 5KB
ExternalStorage.java 5KB
NimTaskExecutor.java 5KB
LogImpl.java 5KB
ReactExtendsion.java 4KB
AbstractDataList.java 4KB
LoginSyncDataStatusObserver.java 4KB
DefalutUserInfoProvider.java 4KB
SysInfoUtil.java 4KB
MessageUtil.java 4KB
HexDump.java 4KB
ScreenUtil.java 4KB
SampleSizeUtil.java 4KB
TextComparator.java 4KB
TextComparator.java 4KB
NimPushContentProvider.java 4KB
BlackListObserver.java 4KB
StorageUtil.java 4KB
FileUtil.java 4KB
ContactSearch.java 4KB
RedPacketOpenAttachement.java 3KB
DataCacheManager.java 3KB
MsgDataProvider.java 3KB
BankTransferSystemAttachment.java 3KB
MessageHelper.java 3KB
AccountNoticeAttachment.java 3KB
共 233 条
- 1
- 2
- 3
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功