An open API service indexing awesome lists of open source software.

https://github.com/jpush/jmessage-react-plugin


https://github.com/jpush/jmessage-react-plugin

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          

# jmessage-react-plugin

极光官方开发的[极光 IM](https://docs.jiguang.cn/jmessage/guideline/jmessage_guide/) react-native 插件,同时支持 文字、图片、语言、文件和自定义消息。同时支持 iOS 和 Android 平台。

### ChangeLog

3.1.8

1.需要在[AppDelegate.m](https://github.com/jpush/jmessage-react-plugin/blob/master/example/ios/JMessageDemo/AppDelegate.m) 中手动添加初始化方法,示例如下

```
#import

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[JMessage setupJMessage:launchOptions
appKey:appKey
channel:@""
apsForProduction:isProduction
category:nil
messageRoaming:true];

[JMessage addDelegate:self withConversation:nil];
}

//JMessage 离线消息监听
- (void)onSyncOfflineMessageConversation:(JMSGConversation *)conversation
offlineMessages:(NSArray JMSG_GENERIC ( __kindof JMSGMessage *) *)offlineMessages {
[RCTJMessageEventQueue sharedInstance].offlineConversation = conversation;
[RCTJMessageEventQueue sharedInstance].offlineMsgArray = offlineMessages;
}
```

2.js中初始化和监听需要在[componentDidMount()](https://github.com/jpush/jmessage-react-plugin/blob/master/example/app/routes/Launch/index.js)componentDidMount()方法内,示例如下

```
componentDidMount() {
JMessage.init({
appkey: appkey,
channel:channel
isOpenMessageRoaming: true,
isProduction: true,
});
JMessage.setDebugMode({enable: true});
//离线消息监听
JMessage.addSyncOfflineMessageListener((message) => {
console.log("| JIGUANG |===addSyncOfflineMessageListener====" + JSON.stringify(message))
});
}
```

## 安装

```
npm install jmessage-react-plugin --save
npm install jcore-react-native --save(目前 jmessage-react-plugin 2.1.1 版本需要指定安装 jcore-react-native 1.2.1 以上版本)
react-native link
```

##### (如果是原生应用集成 react-native)使用 CocoaPods 安装

**注意: 如果已经通过 react-native link 链接了插件,则不需要执行下面的步骤。**

在 Podfile 中添加如下代码:

```
pod 'JMessageRN', :path => '../node_modules/jmessage-react-plugin'
```

终端执行如下指令:

```
pod install
```

## 配置

#### Android

- 配置 AndroidManifest,加入 `meta-data` 部分
```
...

...
```
- 配置 build.gradle,将下列配置部分替换成自己的。
```
defaultConfig {
       applicationId "你的 application id"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
manifestPlaceholders = [
               JPUSH_APPKEY: "你的 appKey", //在此替换你的APPKey
APP_CHANNEL: "developer-default" //应用渠道号
]
}
```

在 MainApplication 中加上 JMessagePackage 即可,JMessagePackage 有一个参数,设置是否弹出 toast。
```
// 如果设置为 true,则不弹出 toast。
private boolean shutdownToast = false;

@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new JMessageReactPackage(shutdownToast),
);
}
```

#### iOS

- 打开工程,进入 Build Settings -> Framework search paths 添加 framework 搜索路径

```
$(SRCROOT)/../node_modules/jmessage-react-plugin/ios/RCTJMessageModule
```

- 打开工程,进入 Build Settings -> Other Link Flag 添加一行编译选项

```
-framework "JMessage"
```

## API

[API doc](./document/API.md)

## 更多

- QQ 群:553406342
- [极光官网文档](http://docs.jiguang.cn/guideline/jmessage_guide/)
- 插件问题可以直接提 [issue](https://github.com/jpush/jmessage-react-plugin/issues)
- 有问题可访问[极光社区](http://community.jiguang.cn/)搜索和提问。