You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.0 KiB
108 lines
3.0 KiB
import 'dart:io';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
|
|
|
void main() {
|
|
runApp(MyApp());
|
|
}
|
|
|
|
class MyApp extends StatefulWidget {
|
|
@override
|
|
_MyAppState createState() => _MyAppState();
|
|
}
|
|
|
|
class _MyAppState extends State<MyApp> {
|
|
@override
|
|
void initState() {
|
|
_initSDK();
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return MaterialApp(
|
|
home: Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text('Plugin example app'),
|
|
),
|
|
body: Column(
|
|
children: [
|
|
TextButton(onPressed: _login, child: Text('login')),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
void _login() {
|
|
if (OpenIM.iMManager.isInitialized)
|
|
OpenIM.iMManager.login(uid: '', token: '');
|
|
}
|
|
|
|
void _initSDK() async {
|
|
// Initialize SDK
|
|
OpenIM.iMManager
|
|
..initSDK(
|
|
platform: Platform.isAndroid ? IMPlatform.android : IMPlatform.ios,
|
|
ipApi: '',
|
|
ipWs: '',
|
|
dbPath: '',
|
|
listener: OnInitSDKListener(
|
|
connecting: () {},
|
|
connectFailed: (code, error) {},
|
|
connectSuccess: () {},
|
|
kickedOffline: () {},
|
|
userSigExpired: () {},
|
|
selfInfoUpdated: (user) {},
|
|
),
|
|
)
|
|
|
|
// Add message listener (remove when not in use)
|
|
..messageManager.addAdvancedMsgListener(OnAdvancedMsgListener(
|
|
recvMessageRevoked: (msgId) {},
|
|
recvC2CReadReceipt: (list) {},
|
|
recvNewMessage: (msg) {},
|
|
))
|
|
|
|
// Set up message sending progress listener
|
|
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
|
|
progressCallback: (msgId, progress) {},
|
|
))
|
|
|
|
// Set up friend relationship listener
|
|
..friendshipManager.setFriendshipListener(OnFriendshipListener(
|
|
blackListAdd: (u) {},
|
|
blackListDeleted: (u) {},
|
|
friendApplicationListAccept: (u) {},
|
|
friendApplicationListAdded: (u) {},
|
|
friendApplicationListDeleted: (u) {},
|
|
friendApplicationListReject: (u) {},
|
|
friendInfoChanged: (u) {},
|
|
friendListAdded: (u) {},
|
|
friendListDeleted: (u) {},
|
|
))
|
|
|
|
// Set up conversation listener
|
|
..conversationManager.setConversationListener(OnConversationListener(
|
|
conversationChanged: (list) {},
|
|
newConversation: (list) {},
|
|
totalUnreadMsgCountChanged: (count) {},
|
|
syncServerFailed: () {},
|
|
syncServerFinish: () {},
|
|
syncServerStart: () {},
|
|
))
|
|
|
|
// Set up group listener
|
|
..groupManager.setGroupListener(OnGroupListener(
|
|
applicationProcessed: (groupId, opUser, agreeOrReject, opReason) {},
|
|
groupCreated: (groupId) {},
|
|
groupInfoChanged: (groupId, info) {},
|
|
memberEnter: (groupId, list) {},
|
|
memberInvited: (groupId, opUser, list) {},
|
|
memberKicked: (groupId, opUser, list) {},
|
|
memberLeave: (groupId, info) {},
|
|
receiveJoinApplication: (groupId, info, opReason) {},
|
|
));
|
|
}
|
|
}
|
|
|