im_flutter_sdk 1.0.0 copy "im_flutter_sdk: ^1.0.0" to clipboard
im_flutter_sdk: ^1.0.0 copied to clipboard

outdated

Easemob IM flutter SDK.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

import 'package:flutter_localizations/flutter_localizations.dart';

import 'package:im_flutter_sdk/im_flutter_sdk.dart';
import 'package:im_flutter_sdk_example/pages/chatgroup_list_page.dart';
import 'package:im_flutter_sdk_example/pages/chatroom_list_page.dart';
import 'package:im_flutter_sdk_example/pages/public_group_list_page.dart';
import 'utils/localizations.dart';
import 'pages/home_page.dart';
import 'package:im_flutter_sdk_example/pages/login_page.dart';
import 'package:im_flutter_sdk_example/pages/register_page.dart';
import 'package:im_flutter_sdk_example/pages/contacts_list_page.dart';
import 'package:im_flutter_sdk_example/pages/items/contact_add.dart';
import 'package:im_flutter_sdk_example/pages/chat_page.dart';
import 'utils/style.dart';
import 'common/common.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> implements EMConnectionListener{
  @override
  void initState() {
    //TODO: init sdk;
    EMOptions options = new EMOptions(appKey: "easemob-demo#chatdemoui");
//    EMPushConfig config = new EMPushConfig();
//    config.enableAPNS('证书名称');
//    options.setPushConfig(config);
    EMClient.getInstance().init(options);
    EMClient.getInstance().setDebugMode(true);
    EMClient.getInstance().addConnectionListener(this);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      /// 配置跳转路由
      routes: <String, WidgetBuilder>{
        Constant.toRegisterPage:(BuildContext context)=>new RegisterPage(),
        Constant.toLoginPage:(BuildContext context)=>new LoginPage(),
        Constant.toHomePage: (BuildContext context) => new HomePage(),
        Constant.toChatRoomListPage: (BuildContext context) => new EMChatRoomListPage(),
        Constant.toChatPage: (BuildContext context) => new ChatPage(),
        Constant.toAddContact: (BuildContext context) => new EMContactAddPage(),
        Constant.toContactList: (BuildContext context) => new EMContactsListPage(),
        Constant.toChatGroupListPage: (BuildContext context) => new EMChatGroupListPage(),
        Constant.toPublicGroupListPage: (BuildContext context) => new PublicGroupListPage(),
      },
      /// 配置国际化语言
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        DemoLocalizationsDelegate.delegate,
      ],
      supportedLocales: [
        const Locale('en', 'US'), // 美国英语
        const Locale('zh', 'CH'), // 中文简体
        // ... other locales the app supports
      ],


      title: '环信即时通讯云',

      ///浅色模式,设置的颜色可能影响其他组件,可以通过判断ThemeUtils.isDark去设置对应颜色
      theme: new ThemeData(
        brightness: Brightness.light,
        accentColor: EMColor.buttonDisabled,
        backgroundColor: EMColor.bgColor,
        bottomAppBarColor: EMColor.appMain,
        buttonColor: EMColor.buttonDisabled,
        dialogBackgroundColor: EMColor.appMain,
        hintColor: EMColor.textGray,
        errorColor: EMColor.red,
        primaryColor: EMColor.buttonDisabled,
        scaffoldBackgroundColor: EMColor.bgColor,
      ),
      ///深色模式
      darkTheme: ThemeData(
        brightness: Brightness.dark,
        accentColor: EMColor.darkButtonDisabled,
        backgroundColor: EMColor.darkBgColor,
        bottomAppBarColor: EMColor.darkAppMain,
        buttonColor: EMColor.darkButtonDisabled,
        dialogBackgroundColor: EMColor.darkAppMain,
        hintColor: EMColor.darkTextGray,
        errorColor: EMColor.darkRed,
        primaryColor: EMColor.darkAppMain,
        scaffoldBackgroundColor: EMColor.darkBgColor,
      ),
      home: LoginPage(),
    );
  }

  /// EMConnectionListener
  @override
  void onConnected() {
    // TODO: implement onConnected
    print("网络连接成功");
    EMClient.getInstance().callManager().registerCallReceiver();
  }

  @override
  void onDisconnected(int errorCode) {
    // TODO: implement onDisconnected
    print("网络连接断开 ");
  }

}
12
likes
15
pub points
83%
popularity

Publisher

unverified uploader

Easemob IM flutter SDK.

Homepage

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on im_flutter_sdk