Skip to content

Commit 596138f

Browse files
authored
Merge pull request #66 from jpush/dev
Add public group API.
2 parents db6e51a + 106c37f commit 596138f

36 files changed

+2350
-621
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@
1111

1212
>注意:从 v3.4.0 开始支持 cordova-android 7.0.0,因 cordova-android 7.0.0 修改了 Android 项目结构,因此不兼容之前的版本,升级前请务必注意。
1313
>
14-
>如果需要安装之前版本的插件,请先自行安装 v1.2.0 以下版本(建议安装 v1.1.12,cordova-plugin-jcore 向下兼容)的 cordova-plugin-jcore,再安装插件,否则运行会报错。
14+
>如果需要安装之前版本的插件,请先安装 v1.2.0 以下版本(建议安装 v1.1.12)的 [cordova-plugin-jcore](https://github.com/jpush/cordova-plugin-jcore),再安装旧版插件(建议v3.2.0),否则运行会报错。
15+
>
16+
>如果需要在cordova-android 7.0.0之前版本集成最新插件,参照[这篇文章](https://www.jianshu.com/p/23b117ca27a6)
17+
>
18+
>[Cordova Android版本与原生版本对应表](http://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#requirements-and-support)
1519
1620
## Full Documentation
1721

ionic/example/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"@ionic-native/splash-screen": "4.3.2",
2828
"@ionic-native/status-bar": "4.3.2",
2929
"@ionic/storage": "2.1.3",
30-
"@jiguang-ionic/jmessage": "1.0.1",
30+
"@jiguang-ionic/jmessage": "^1.0.2",
3131
"cordova-android": "^7.0.0",
3232
"cordova-ios": "^4.5.4",
3333
"cordova-plugin-camera": "^4.0.3",
@@ -41,7 +41,6 @@
4141
"ionic-angular": "3.9.2",
4242
"ionic-plugin-keyboard": "^2.2.1",
4343
"ionicons": "3.0.0",
44-
"jmessage-chenyu": "^1.0.9",
4544
"jmessage-phonegap-plugin": "3.4.7",
4645
"rxjs": "5.5.2",
4746
"sw-toolbox": "3.6.0",

ionic/index.ts

Lines changed: 137 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {
1818
export interface JMSingleType {
1919
type: 'single';
2020
username: string;
21-
appKey: string;
21+
appKey?: string;
2222
};
2323

2424
export interface JMGroupType {
@@ -122,7 +122,7 @@ export type JMContactNotifyListener = (event: {
122122
type: 'invite_received' | 'invite_accepted' | 'invite_declined' | 'contact_deleted';
123123
reason: string;
124124
fromUsername: string;
125-
fromUserAppKey: string;
125+
fromUserAppKey?: string;
126126
}) => void;
127127

128128
export type JMMessageRetractListener = (event: {
@@ -141,13 +141,36 @@ export type JMReceiveChatRoomMessageListener = (event: {
141141
messageArray: JMAllMessage[];
142142
}) => void;
143143

144+
145+
export type JMReceiveApplyJoinGroupApprovalListener = (event: {
146+
eventId: string;
147+
groupId: string;
148+
isInitiativeApply: boolean;
149+
sendApplyUser: JMUserInfo;
150+
joinGroupUsers?: JMUserInfo[];
151+
reason?: string;
152+
}) => void;
153+
154+
export type JMReceiveGroupAdminRejectListener = (event: {
155+
groupId: string;
156+
groupManager: JMUserInfo;
157+
reason?: string;
158+
}) => void;
159+
160+
export type JMReceiveGroupAdminApprovalListener = (event: {
161+
isAgree: boolean;
162+
applyEventId: string;
163+
groupId: string;
164+
groupAdmin: JMUserInfo;
165+
users: JMUserInfo[];
166+
}) => void;
144167
/**
145168
* User Type
146169
*/
147170
export interface JMUserInfo {
148171
type: 'user';
149172
username: string; // 用户名
150-
appKey: string; // 用户所属应用的 appKey,可与 username 共同作为用户的唯一标识
173+
appKey?: string; // 用户所属应用的 appKey,可与 username 共同作为用户的唯一标识
151174
nickname?: string; // 昵称
152175
gender: 'male' | 'female' | 'unknown'; // 'male' / 'female' / 'unknown'
153176
avatarThumbPath: string; // 头像的缩略图地址
@@ -170,7 +193,7 @@ export interface JMGroupInfo {
170193
desc?: string; // 群组描述
171194
level: number; // 群组等级,默认等级 4
172195
owner: string; // 群主的 username
173-
ownerAppKey: string; // 群主的 appKey
196+
ownerAppKey?: string; // 群主的 appKey
174197
maxMemberCount: number; // 最大成员数
175198
isNoDisturb: boolean; // 是否免打扰
176199
isBlocked: boolean; // 是否屏蔽群消息
@@ -180,7 +203,7 @@ export interface JMChatRoomInfo {
180203
type: 'chatRoom';
181204
roomId: string; // 聊天室 id
182205
name: string; // 聊天室名称
183-
appKey: string; // 聊天室所属应用的 App Key
206+
appKey?: string; // 聊天室所属应用的 App Key
184207
description?: string; // 聊天室描述信息
185208
createTime: number; // 创建日期,单位:秒
186209
maxMemberCount?: number; // 最大成员数
@@ -532,6 +555,7 @@ export class JMessagePlugin extends IonicNativePlugin {
532555

533556
@Cordova()
534557
createGroup(params: {
558+
groupType?: 'public' | 'private';
535559
name?: string;
536560
desc?: string;
537561
}): Promise<string> {
@@ -774,6 +798,71 @@ export class JMessagePlugin extends IonicNativePlugin {
774798
return;
775799
}
776800

801+
@Cordova()
802+
getAllUnreadCount(): Promise< { count: number; } > {
803+
return; // We add return; here to avoid any IDE / Compiler errors
804+
}
805+
806+
@Cordova()
807+
addGroupAdmins(params: {
808+
groupId: string;
809+
usernames: string[];
810+
appKey?: string;
811+
}): Promise<any> {
812+
return;
813+
}
814+
815+
@Cordova()
816+
removeGroupAdmins(params: {
817+
groupId: string;
818+
usernames: string[];
819+
appKey?: string;
820+
}): Promise<any> {
821+
return;
822+
}
823+
824+
@Cordova()
825+
changeGroupType(params: {
826+
groupId: string;
827+
type: 'public' | 'private';
828+
}): Promise<any> {
829+
return;
830+
}
831+
832+
@Cordova()
833+
getPublicGroupInfos(params: {
834+
appKey: string;
835+
start: number;
836+
count: number;
837+
}): Promise<any> {
838+
return;
839+
}
840+
841+
@Cordova()
842+
applyJoinGroup(params: {
843+
groupId: string;
844+
reason?: string;
845+
}): Promise<any> {
846+
return;
847+
}
848+
849+
@Cordova()
850+
processApplyJoinGroup(params: {
851+
events: string[];
852+
isAgree: boolean;
853+
isRespondInviter: boolean
854+
reason?: string;
855+
}): Promise<any> {
856+
return;
857+
}
858+
859+
@Cordova()
860+
dissolveGroup(params: {
861+
groupId: string;
862+
}): Promise<any> {
863+
return;
864+
}
865+
777866
@Cordova({
778867
sync: true,
779868
platforms: ['iOS', 'Android']
@@ -902,4 +991,47 @@ export class JMessagePlugin extends IonicNativePlugin {
902991
})
903992
removeReceiveChatRoomMessageListener(params: JMReceiveChatRoomMessageListener): void {
904993
}
994+
995+
@Cordova({
996+
sync: true,
997+
platforms: ['iOS', 'Android']
998+
})
999+
addReceiveApplyJoinGroupApprovalListener(params: JMReceiveApplyJoinGroupApprovalListener): void {
1000+
}
1001+
1002+
@Cordova({
1003+
sync: true,
1004+
platforms: ['iOS', 'Android']
1005+
})
1006+
removeReceiveApplyJoinGroupApprovalListener(params: JMReceiveApplyJoinGroupApprovalListener): void {
1007+
}
1008+
1009+
1010+
@Cordova({
1011+
sync: true,
1012+
platforms: ['iOS', 'Android']
1013+
})
1014+
addReceiveGroupAdminRejectListener(params: JMReceiveGroupAdminRejectListener): void {
1015+
}
1016+
1017+
@Cordova({
1018+
sync: true,
1019+
platforms: ['iOS', 'Android']
1020+
})
1021+
removeReceiveGroupAdminRejectListener(params: JMReceiveGroupAdminRejectListener): void {
1022+
}
1023+
1024+
@Cordova({
1025+
sync: true,
1026+
platforms: ['iOS', 'Android']
1027+
})
1028+
addReceiveGroupAdminApprovalListener(params: JMReceiveGroupAdminApprovalListener): void {
1029+
}
1030+
1031+
@Cordova({
1032+
sync: true,
1033+
platforms: ['iOS', 'Android']
1034+
})
1035+
removeReceiveGroupAdminApprovalListener(params: JMReceiveGroupAdminApprovalListener): void {
1036+
}
9051037
}

ionic/jmessage/index.d.ts

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { IonicNativePlugin } from '@ionic-native/core';
22
export interface JMSingleType {
33
type: 'single';
44
username: string;
5-
appKey: string;
5+
appKey?: string;
66
}
77
export interface JMGroupType {
88
type: 'group';
@@ -91,7 +91,7 @@ export declare type JMContactNotifyListener = (event: {
9191
type: 'invite_received' | 'invite_accepted' | 'invite_declined' | 'contact_deleted';
9292
reason: string;
9393
fromUsername: string;
94-
fromUserAppKey: string;
94+
fromUserAppKey?: string;
9595
}) => void;
9696
export declare type JMMessageRetractListener = (event: {
9797
conversation: JMConversationInfo;
@@ -106,13 +106,33 @@ export declare type JMReceiveTransCommandListener = (event: {
106106
export declare type JMReceiveChatRoomMessageListener = (event: {
107107
messageArray: JMAllMessage[];
108108
}) => void;
109+
export declare type JMReceiveApplyJoinGroupApprovalListener = (event: {
110+
eventId: string;
111+
groupId: string;
112+
isInitiativeApply: boolean;
113+
sendApplyUser: JMUserInfo;
114+
joinGroupUsers?: JMUserInfo[];
115+
reason?: string;
116+
}) => void;
117+
export declare type JMReceiveGroupAdminRejectListener = (event: {
118+
groupId: string;
119+
groupManager: JMUserInfo;
120+
reason?: string;
121+
}) => void;
122+
export declare type JMReceiveGroupAdminApprovalListener = (event: {
123+
isAgree: boolean;
124+
applyEventId: string;
125+
groupId: string;
126+
groupAdmin: JMUserInfo;
127+
users: JMUserInfo[];
128+
}) => void;
109129
/**
110130
* User Type
111131
*/
112132
export interface JMUserInfo {
113133
type: 'user';
114134
username: string;
115-
appKey: string;
135+
appKey?: string;
116136
nickname?: string;
117137
gender: 'male' | 'female' | 'unknown';
118138
avatarThumbPath: string;
@@ -136,7 +156,7 @@ export interface JMGroupInfo {
136156
desc?: string;
137157
level: number;
138158
owner: string;
139-
ownerAppKey: string;
159+
ownerAppKey?: string;
140160
maxMemberCount: number;
141161
isNoDisturb: boolean;
142162
isBlocked: boolean;
@@ -145,7 +165,7 @@ export interface JMChatRoomInfo {
145165
type: 'chatRoom';
146166
roomId: string;
147167
name: string;
148-
appKey: string;
168+
appKey?: string;
149169
description?: string;
150170
createTime: number;
151171
maxMemberCount?: number;
@@ -352,6 +372,7 @@ export declare class JMessagePlugin extends IonicNativePlugin {
352372
}): Promise<any>;
353373
getFriends(): Promise<any>;
354374
createGroup(params: {
375+
groupType?: 'public' | 'private';
355376
name?: string;
356377
desc?: string;
357378
}): Promise<string>;
@@ -451,6 +472,41 @@ export declare class JMessagePlugin extends IonicNativePlugin {
451472
roomId: string;
452473
}): Promise<any>;
453474
getChatRoomConversationList(): Promise<any>;
475+
getAllUnreadCount(): Promise<{
476+
count: number;
477+
}>;
478+
addGroupAdmins(params: {
479+
groupId: string;
480+
usernames: string[];
481+
appKey?: string;
482+
}): Promise<any>;
483+
removeGroupAdmins(params: {
484+
groupId: string;
485+
usernames: string[];
486+
appKey?: string;
487+
}): Promise<any>;
488+
changeGroupType(params: {
489+
groupId: string;
490+
type: 'public' | 'private';
491+
}): Promise<any>;
492+
getPublicGroupInfos(params: {
493+
appKey: string;
494+
start: number;
495+
count: number;
496+
}): Promise<any>;
497+
applyJoinGroup(params: {
498+
groupId: string;
499+
reason?: string;
500+
}): Promise<any>;
501+
processApplyJoinGroup(params: {
502+
events: string[];
503+
isAgree: boolean;
504+
isRespondInviter: boolean;
505+
reason?: string;
506+
}): Promise<any>;
507+
dissolveGroup(params: {
508+
groupId: string;
509+
}): Promise<any>;
454510
addReceiveMessageListener(params: JMMessageEventListener): void;
455511
removeReceiveMessageListener(params: JMMessageEventListener): void;
456512
addClickMessageNotificationListener(params: JMMessageEventListener): void;
@@ -469,4 +525,10 @@ export declare class JMessagePlugin extends IonicNativePlugin {
469525
removeReceiveTransCommandListener(params: JMReceiveTransCommandListener): void;
470526
addReceiveChatRoomMessageListener(params: JMReceiveChatRoomMessageListener): void;
471527
removeReceiveChatRoomMessageListener(params: JMReceiveChatRoomMessageListener): void;
528+
addReceiveApplyJoinGroupApprovalListener(params: JMReceiveApplyJoinGroupApprovalListener): void;
529+
removeReceiveApplyJoinGroupApprovalListener(params: JMReceiveApplyJoinGroupApprovalListener): void;
530+
addReceiveGroupAdminRejectListener(params: JMReceiveGroupAdminRejectListener): void;
531+
removeReceiveGroupAdminRejectListener(params: JMReceiveGroupAdminRejectListener): void;
532+
addReceiveGroupAdminApprovalListener(params: JMReceiveGroupAdminApprovalListener): void;
533+
removeReceiveGroupAdminApprovalListener(params: JMReceiveGroupAdminApprovalListener): void;
472534
}

0 commit comments

Comments
 (0)