├── tencent_im_sdk_plugin ├── doc │ ├── enums.md │ ├── manager.md │ └── models.md ├── ios │ ├── Assets │ │ └── .gitkeep │ ├── Classes │ │ ├── TencentImSDKPluginOC.h │ │ ├── entity │ │ │ ├── V2GroupAtInfoEntity.swift │ │ │ ├── V2UserInfoEntity.swift │ │ │ ├── V2GroupMemberChangeInfoEntity.swift │ │ │ ├── FriendOperationResultEntity.swift │ │ │ ├── V2FriendInfoResultEntity.swift │ │ │ ├── V2GroupChangeInfoEntity.swift │ │ │ ├── FriendCheckResultEntity.swift │ │ │ ├── V2MessageReceiptEntity.swift │ │ │ ├── V2FriendApplicationResultEntity.swift │ │ │ ├── V2FriendApplicationEntity.swift │ │ │ ├── GroupMemberOperationResultEntity.swift │ │ │ ├── V2GroupApplicationResultEntity.swift │ │ │ ├── FriendInfoResultEntity.swift │ │ │ ├── V2GroupApplicationEntity.swift │ │ │ └── V2ConversationResultEntity.swift │ │ ├── listener │ │ │ ├── APNSListener.swift │ │ │ └── LogListener.swift │ │ ├── utils │ │ │ └── ThreadManager.swift │ │ └── TencentImSDKPluginOC.m │ └── .gitignore ├── package-lock.json ├── android │ ├── settings.gradle │ ├── gradle.properties │ ├── .gitignore │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ ├── consumer-proguard-rules.txt │ ├── src │ │ └── main │ │ │ ├── java │ │ │ └── com │ │ │ │ └── qq │ │ │ │ └── qcloud │ │ │ │ └── tencent_im_sdk_plugin │ │ │ │ └── util │ │ │ │ ├── AbCallback.java │ │ │ │ └── DownloadCallback.java │ │ │ └── AndroidManifest.xml │ ├── .classpath │ ├── .settings │ │ └── org.eclipse.buildship.core.prefs │ └── .project ├── lib │ ├── enum │ │ ├── callbacks.dart │ │ ├── log_level.dart │ │ ├── friend_type.dart │ │ ├── group_type.dart │ │ ├── image_types.dart │ │ ├── V2TIMManager.dart │ │ ├── at_info_types.dart │ │ ├── listener_type.dart │ │ ├── log_level_enum.dart │ │ ├── message_status.dart │ │ ├── V2TimSDKListener.dart │ │ ├── friend_type_enum.dart │ │ ├── message_priority.dart │ │ ├── offlinePushInfo.dart │ │ ├── V2TimGroupListener.dart │ │ ├── conversation_type.dart │ │ ├── group_add_opt_enum.dart │ │ ├── group_add_opt_type.dart │ │ ├── group_member_role.dart │ │ ├── message_elem_type.dart │ │ ├── group_tips_elem_type.dart │ │ ├── message_priority_enum.dart │ │ ├── simpleMsgListenerType.dart │ │ ├── user_info_allow_type.dart │ │ ├── V2TimAdvancedMsgListener.dart │ │ ├── V2TimFriendshipListener.dart │ │ ├── V2TimSignalingListener.dart │ │ ├── V2TimSimpleMsgListener.dart │ │ ├── group_application_type.dart │ │ ├── group_change_info_type.dart │ │ ├── group_member_filter_enum.dart │ │ ├── group_member_filter_type.dart │ │ ├── group_member_role_enum.dart │ │ ├── history_message_get_type.dart │ │ ├── receive_message_opt_enum.dart │ │ ├── V2TimConversationListener.dart │ │ ├── friend_response_type_enum.dart │ │ ├── history_msg_get_type_enum.dart │ │ ├── v2_tim_keyword_list_match_type.dart │ │ ├── friend_application_type_enum.dart │ │ ├── group_application_type_enum.dart │ │ ├── v2_tim_conversation_marktype.dart │ │ ├── group_application_handle_result.dart │ │ ├── group_application_handle_status.dart │ │ ├── get_group_message_read_member_list_filter.dart │ │ └── utils.dart │ ├── models │ │ ├── v2_tim_image.dart │ │ ├── v2_tim_member.dart │ │ ├── v2_tim_message.dart │ │ ├── user_status_type.dart │ │ ├── v2_tim_callback.dart │ │ ├── v2_tim_face_elem.dart │ │ ├── v2_tim_file_elem.dart │ │ ├── v2_tim_group_info.dart │ │ ├── v2_tim_image_elem.dart │ │ ├── v2_tim_sound_elem.dart │ │ ├── v2_tim_text_elem.dart │ │ ├── v2_tim_topic_info.dart │ │ ├── v2_tim_user_info.dart │ │ ├── v2_tim_video_elem.dart │ │ ├── v2_tim_conversation.dart │ │ ├── v2_tim_custom_elem.dart │ │ ├── v2_tim_friend_group.dart │ │ ├── v2_tim_friend_info.dart │ │ ├── v2_tim_group_member.dart │ │ ├── v2_tim_member_enter.dart │ │ ├── v2_tim_member_leave.dart │ │ ├── v2_tim_merger_elem.dart │ │ ├── v2_tim_user_status.dart │ │ ├── v2_tim_group_at_info.dart │ │ ├── v2_tim_group_created.dart │ │ ├── v2_tim_group_dismissed.dart │ │ ├── v2_tim_group_recycled.dart │ │ ├── v2_tim_group_tips_elem.dart │ │ ├── v2_tim_location_elem.dart │ │ ├── v2_tim_member_invited.dart │ │ ├── v2_tim_member_kicked.dart │ │ ├── v2_tim_message_receipt.dart │ │ ├── v2_tim_quit_from_group.dart │ │ ├── v2_tim_signaling_info.dart │ │ ├── v2_tim_user_full_info.dart │ │ ├── v2_tim_group_application.dart │ │ ├── v2_tim_group_change_info.dart │ │ ├── v2_tim_group_info_result.dart │ │ ├── v2_tim_group_member_info.dart │ │ ├── v2_tim_message_extension.dart │ │ ├── v2_tim_offline_push_info.dart │ │ ├── v2_tim_topic_info_result.dart │ │ ├── v2_tim_conversation_result.dart │ │ ├── v2_tim_friend_application.dart │ │ ├── v2_tim_friend_check_result.dart │ │ ├── v2_tim_friend_info_result.dart │ │ ├── v2_tim_friend_search_param.dart │ │ ├── v2_tim_grant_administrator.dart │ │ ├── v2_tim_group_info_changed.dart │ │ ├── v2_tim_group_search_param.dart │ │ ├── v2_tim_member_info_changed.dart │ │ ├── v2_tim_message_change_info.dart │ │ ├── v2_tim_message_list_result.dart │ │ ├── v2_tim_message_online_url.dart │ │ ├── v2_tim_message_search_param.dart │ │ ├── v2_tim_revoke_administrator.dart │ │ ├── v2_tim_application_processed.dart │ │ ├── v2_tim_group_member_full_info.dart │ │ ├── v2_tim_message_search_result.dart │ │ ├── v2_tim_msg_create_info_result.dart │ │ ├── v2_tim_recv_c2c_text_message.dart │ │ ├── v2_tim_topic_operation_result.dart │ │ ├── v2_tim_conversationList_filter.dart │ │ ├── v2_tim_friend_application_result.dart │ │ ├── v2_tim_friend_operation_result.dart │ │ ├── v2_tim_group_application_result.dart │ │ ├── v2_tim_group_attribute_changed.dart │ │ ├── v2_tim_group_member_change_info.dart │ │ ├── v2_tim_group_member_info_result.dart │ │ ├── v2_tim_group_member_search_param.dart │ │ ├── v2_tim_message_download_progress.dart │ │ ├── v2_tim_message_extension_result.dart │ │ ├── v2_tim_receive_message_opt_info.dart │ │ ├── v2_tim_receive_rest_custom_data.dart │ │ ├── v2_tim_recv_c2c_custom_message.dart │ │ ├── v2_tim_recv_group_custom_message.dart │ │ ├── v2_tim_recv_group_text_message.dart │ │ ├── v2_tim_group_member_search_result.dart │ │ ├── v2_tim_message_search_result_item.dart │ │ ├── v2_tim_conversation_operation_result.dart │ │ ├── v2_tim_group_member_operation_result.dart │ │ ├── v2_tim_group_message_read_member_list.dart │ │ └── v2_tim_value_callback.dart │ └── tencent_im_sdk_plugin.dart ├── .metadata ├── dartdoc_options.yaml └── .gitignore ├── example ├── ios │ ├── Runner │ │ ├── Runner-Bridging-Header.h │ │ ├── Assets.xcassets │ │ │ ├── LaunchImage.imageset │ │ │ │ ├── LaunchImage.png │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ ├── README.md │ │ │ │ └── Contents.json │ │ │ └── AppIcon.appiconset │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── AppDelegate.swift │ ├── Flutter │ │ ├── Debug.xcconfig │ │ ├── Release.xcconfig │ │ └── AppFrameworkInfo.plist │ ├── Runner.xcodeproj │ │ └── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ └── IDEWorkspaceChecks.plist │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ └── IDEWorkspaceChecks.plist │ └── .gitignore ├── web │ ├── favicon.png │ ├── icons │ │ ├── Icon-192.png │ │ ├── Icon-512.png │ │ ├── Icon-maskable-192.png │ │ └── Icon-maskable-512.png │ └── manifest.json ├── web1 │ ├── favicon.png │ ├── icons │ │ ├── Icon-192.png │ │ ├── Icon-512.png │ │ ├── Icon-maskable-192.png │ │ └── Icon-maskable-512.png │ └── manifest.json ├── imsdk_C_20221101.xlog ├── imsdk_C_20221103.xlog ├── imsdk_C_20221104.xlog ├── imsdk_C_20221109.xlog ├── android │ ├── gradle.properties │ ├── app │ │ └── src │ │ │ ├── main │ │ │ ├── res │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable-v21 │ │ │ │ │ └── launch_background.xml │ │ │ │ ├── values │ │ │ │ │ └── styles.xml │ │ │ │ └── values-night │ │ │ │ │ └── styles.xml │ │ │ └── kotlin │ │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── example │ │ │ │ └── MainActivity.kt │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── profile │ │ │ └── AndroidManifest.xml │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ ├── .gitignore │ ├── settings.gradle │ └── build.gradle ├── imsdk_config_1400597090 ├── macos │ ├── Runner │ │ ├── Configs │ │ │ ├── Debug.xcconfig │ │ │ ├── Release.xcconfig │ │ │ ├── Warnings.xcconfig │ │ │ └── AppInfo.xcconfig │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ ├── app_icon_16.png │ │ │ │ ├── app_icon_32.png │ │ │ │ ├── app_icon_64.png │ │ │ │ ├── app_icon_1024.png │ │ │ │ ├── app_icon_128.png │ │ │ │ ├── app_icon_256.png │ │ │ │ └── app_icon_512.png │ │ ├── AppDelegate.swift │ │ ├── Release.entitlements │ │ ├── MainFlutterWindow.swift │ │ └── DebugProfile.entitlements │ ├── .gitignore │ ├── Flutter │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Runner.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── Runner.xcodeproj │ │ └── project.xcworkspace │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── 1400597090_313039343432 │ ├── im.db-shm │ ├── im.db-wal │ ├── msg_0.db-shm │ └── msg_0.db-wal ├── windows │ ├── runner │ │ ├── resources │ │ │ └── app_icon.ico │ │ ├── resource.h │ │ ├── utils.h │ │ ├── runner.exe.manifest │ │ └── flutter_window.h │ ├── .gitignore │ └── flutter │ │ ├── generated_plugin_registrant.h │ │ ├── generated_plugin_registrant.cc │ │ └── generated_plugins.cmake ├── lib │ ├── im │ │ ├── template.dart │ │ └── logout.dart │ ├── provider │ │ └── notice.dart │ ├── custom_animation.dart │ ├── utils │ │ └── toast.dart │ └── entity │ │ └── api_data_entity.dart ├── .tox.yml ├── test │ └── widget_test.dart ├── package.json ├── README.md └── .gitignore ├── tencent_im_sdk_plugin_desktop ├── test │ └── tencent_im_sdk_plugin_macos_test.dart ├── lib │ ├── utils │ │ ├── env.dart │ │ └── load_dylib.dart │ ├── enum │ │ ├── tim_conv_type.dart │ │ ├── tim_friend_response_action.dart │ │ ├── tim_friendship_searchFieldKey.dart │ │ ├── tim_group_search_field_enum.dart │ │ ├── tim_login_status_enum.dart │ │ ├── tim_group_member_role_enum.dart │ │ ├── tim_group_member_search_field_enum.dart │ │ ├── tim_elem_type.dart │ │ ├── tim_group_member_modify_enum.dart │ │ └── tim_group_modify_flag.dart │ └── models │ │ └── v2_tim_init_sdk.dart ├── assets │ ├── ImSDK.dll │ ├── libImSDKForMac.dylib │ ├── libim_flutter_desktop_lib.dll │ ├── libim_flutter_desktop_lib.dylib │ └── libim_flutter_desktop_lib_arm64.dylib ├── analysis_options.yaml ├── CHANGELOG.md ├── .metadata └── .gitignore ├── tencent_im_sdk_plugin_web ├── .gitignore ├── lib │ └── src │ │ ├── models │ │ ├── v2_tim_delete_conversation.dart │ │ ├── v2_tim_get_conversation.dart │ │ ├── v2_tim_get_group_attributes.dart │ │ ├── v2_tim_delete_group_attributes.dart │ │ ├── v2_tim_get_group_members_info.dart │ │ ├── v2_tim_get_conversation_list_by_id.dart │ │ ├── v2_tim_set_group_attributes.dart │ │ ├── v2_tim_mute_group_member.dart │ │ ├── v2_tim_transfer_group_owner.dart │ │ ├── v2_tim_handle_group_application.dart │ │ ├── v2_tim_login.dart │ │ ├── v2_tim_init_sdk.dart │ │ ├── v2_tim_group_join.dart │ │ ├── v2_tim_invite_user_to_group.dart │ │ ├── v2_tim_kick_group_member.dart │ │ ├── v2_tim_set_group_member_role.dart │ │ ├── v2_tim_friend_black_list.dart │ │ ├── v2_tim_notice_message_listiner.dart │ │ ├── v2_tim_message_status.dart │ │ ├── v2_tim_set_group_member_info.dart │ │ ├── v2_tim_friend_list.dart │ │ └── v2_tim_pin_conversation.dart │ │ └── enum │ │ └── group_tips_type.dart ├── test │ └── mock │ │ ├── utils.dart │ │ └── mock_data │ │ ├── v2_tim_manager_mock_data.dart │ │ └── v2_tim_message_manager_mock_data.dart ├── analysis_options.yaml ├── README.md ├── .metadata ├── CHANGELOG.md └── pubspec.yaml └── tencent_im_sdk_plugin_platform_interface ├── .gitignore ├── lib ├── models │ ├── v2_tim_elem.dart │ ├── v2_tim_group_created.dart │ ├── v2_tim_quit_from_group.dart │ ├── v2_tim_callback.dart │ ├── v2_tim_member.dart │ ├── v2_tim_group_at_info.dart │ ├── v2_tim_group_member.dart │ ├── v2_tim_receive_message_opt_info.dart │ ├── v2_tim_group_member_change_info.dart │ ├── v2_tim_message_extension.dart │ ├── v2_tim_group_member_operation_result.dart │ ├── v2_tim_topic_operation_result.dart │ ├── v2_tim_receive_rest_custom_data.dart │ ├── v2_tim_user_info.dart │ ├── v2_tim_user_status.dart │ ├── v2_tim_member_leave.dart │ ├── v2_tim_group_dismissed.dart │ ├── v2_tim_group_recycled.dart │ ├── v2_tim_friend_group.dart │ ├── v2_tim_conversation_operation_result.dart │ ├── v2_tim_group_change_info.dart │ ├── v2_tim_friend_operation_result.dart │ ├── v2_tim_group_search_param.dart │ ├── v2_tim_recv_c2c_text_message.dart │ ├── v2_tim_msg_create_info_result.dart │ ├── v2_tim_message_change_info.dart │ ├── v2_tim_text_elem.dart │ ├── v2_tim_group_attribute_changed.dart │ ├── v2_tim_face_elem.dart │ ├── v2_tim_recv_c2c_custom_message.dart │ ├── v2_tim_topic_info_result.dart │ ├── v2_tim_group_info_result.dart │ ├── v2_tim_friend_search_param.dart │ ├── v2_tim_conversationList_filter.dart │ ├── v2_tim_group_member_info.dart │ ├── v2_tim_message_extension_result.dart │ ├── v2_tim_friend_check_result.dart │ ├── v2_tim_member_enter.dart │ ├── v2_tim_custom_elem.dart │ └── v2_tim_message_list_result.dart ├── enum │ ├── friend_response_type_enum.dart │ ├── simpleMsgListenerType.dart │ ├── friend_type_enum.dart │ ├── keyword_list_match_type.dart │ ├── receive_message_opt_enum.dart │ ├── group_application_type_enum.dart │ ├── group_add_opt_enum.dart │ ├── friend_application_type_enum.dart │ ├── group_application_type.dart │ ├── image_types.dart │ ├── user_info_allow_type.dart │ ├── at_info_types.dart │ ├── conversation_type.dart │ ├── get_group_message_read_member_list_filter.dart │ ├── message_priority_enum.dart │ ├── group_type.dart │ ├── group_application_handle_result.dart │ ├── history_msg_get_type_enum.dart │ ├── group_add_opt_type.dart │ ├── group_member_role_enum.dart │ ├── group_member_filter_enum.dart │ ├── V2TIMManager.dart │ ├── user_status_type.dart │ ├── log_level_enum.dart │ ├── message_priority.dart │ ├── history_message_get_type.dart │ ├── group_application_handle_status.dart │ ├── group_member_role.dart │ ├── v2_tim_conversation_marktype.dart │ ├── group_member_filter_type.dart │ ├── log_level.dart │ ├── message_status.dart │ ├── v2_signaling_action_type.dart │ ├── friend_type.dart │ ├── listener_type.dart │ ├── utils.dart │ ├── message_elem_type.dart │ └── group_change_info_type.dart └── utils │ ├── utils.dart │ └── const.dart ├── analysis_options.yaml ├── .metadata ├── pubspec.yaml ├── README.md ├── test └── im_flutter_plugin_platform_interface_desktop.dart └── CHANGELOG.md /tencent_im_sdk_plugin/doc/enums.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/doc/manager.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/doc/models.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "lockfileVersion": 1 3 | } 4 | -------------------------------------------------------------------------------- /example/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'tencent_im_sdk_plugin' 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/test/tencent_im_sdk_plugin_macos_test.dart: -------------------------------------------------------------------------------- 1 | void main() { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /example/web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web/favicon.png -------------------------------------------------------------------------------- /example/web1/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web1/favicon.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .dart_tool/ 3 | 4 | .packages 5 | .pub/ 6 | 7 | build/ 8 | -------------------------------------------------------------------------------- /example/imsdk_C_20221101.xlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/imsdk_C_20221101.xlog -------------------------------------------------------------------------------- /example/imsdk_C_20221103.xlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/imsdk_C_20221103.xlog -------------------------------------------------------------------------------- /example/imsdk_C_20221104.xlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/imsdk_C_20221104.xlog -------------------------------------------------------------------------------- /example/imsdk_C_20221109.xlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/imsdk_C_20221109.xlog -------------------------------------------------------------------------------- /example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /example/imsdk_config_1400597090: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/imsdk_config_1400597090 -------------------------------------------------------------------------------- /example/macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /example/web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web/icons/Icon-192.png -------------------------------------------------------------------------------- /example/web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web/icons/Icon-512.png -------------------------------------------------------------------------------- /example/web1/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web1/icons/Icon-192.png -------------------------------------------------------------------------------- /example/web1/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web1/icons/Icon-512.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/callbacks.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/callbacks.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/log_level.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/log_level.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .dart_tool/ 3 | 4 | .packages 5 | .pub/ 6 | 7 | build/ 8 | -------------------------------------------------------------------------------- /example/macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/friend_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/friend_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/image_types.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/image_types.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/utils/env.dart: -------------------------------------------------------------------------------- 1 | bool isProduct() => const bool.fromEnvironment("dart.vm.product"); 2 | 3 | 4 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TIMManager.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TIMManager.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/at_info_types.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/at_info_types.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/listener_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/listener_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/log_level_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/log_level_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/message_status.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/message_status.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_image.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_image.dart'; 2 | -------------------------------------------------------------------------------- /example/macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /example/web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /example/web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimSDKListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimSDKListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/friend_type_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/friend_type_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/message_priority.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/message_priority.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/offlinePushInfo.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/offlinePushInfo.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_member.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_member.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message.dart'; 2 | -------------------------------------------------------------------------------- /example/1400597090_313039343432/im.db-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/1400597090_313039343432/im.db-shm -------------------------------------------------------------------------------- /example/1400597090_313039343432/im.db-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/1400597090_313039343432/im.db-wal -------------------------------------------------------------------------------- /example/web1/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web1/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /example/web1/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/web1/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimGroupListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimGroupListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/conversation_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/conversation_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_add_opt_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_add_opt_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_add_opt_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_add_opt_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_member_role.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/message_elem_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/message_elem_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/user_status_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/user_status_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_callback.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_callback.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_face_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_face_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_file_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_file_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_image_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_image_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_sound_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_sound_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_text_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_text_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_topic_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_topic_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_user_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_user_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_video_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_video_elem.dart'; 2 | -------------------------------------------------------------------------------- /example/1400597090_313039343432/msg_0.db-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/1400597090_313039343432/msg_0.db-shm -------------------------------------------------------------------------------- /example/1400597090_313039343432/msg_0.db-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/1400597090_313039343432/msg_0.db-wal -------------------------------------------------------------------------------- /example/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /example/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_tips_elem_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_tips_elem_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/message_priority_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/message_priority_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/simpleMsgListenerType.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/simpleMsgListenerType.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/user_info_allow_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/user_info_allow_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_conversation.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_conversation.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_custom_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_custom_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_group.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_group.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_member_enter.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_member_enter.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_member_leave.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_member_leave.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_merger_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_merger_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_user_status.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_user_status.dart'; 2 | -------------------------------------------------------------------------------- /example/windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimAdvancedMsgListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimAdvancedMsgListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimFriendshipListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimFriendshipListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimSignalingListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimSignalingListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimSimpleMsgListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimSimpleMsgListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_application_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_application_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_change_info_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_change_info_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_member_filter_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_filter_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_member_filter_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_filter_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_member_role_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/history_message_get_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/history_message_get_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/receive_message_opt_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/receive_message_opt_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_at_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_at_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_created.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_created.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_dismissed.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_dismissed.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_recycled.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_recycled.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_tips_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_tips_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_location_elem.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_location_elem.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_member_invited.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_member_invited.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_member_kicked.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_member_kicked.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_receipt.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_receipt.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_quit_from_group.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_quit_from_group.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_signaling_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_signaling_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_user_full_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_user_full_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/assets/ImSDK.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/tencent_im_sdk_plugin_desktop/assets/ImSDK.dll -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/V2TimConversationListener.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/V2TimConversationListener.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/friend_response_type_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/friend_response_type_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/history_msg_get_type_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/history_msg_get_type_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/v2_tim_keyword_list_match_type.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/keyword_list_match_type.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_application.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_application.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_change_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_change_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_info_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_info_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_extension.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_extension.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_offline_push_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_offline_push_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_topic_info_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_topic_info_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/friend_application_type_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/friend_application_type_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_application_type_enum.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_application_type_enum.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/v2_tim_conversation_marktype.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/v2_tim_conversation_marktype.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_conversation_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_conversation_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_application.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_application.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_check_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_check_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_info_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_info_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_search_param.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_search_param.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_grant_administrator.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_grant_administrator.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_info_changed.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_info_changed.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_search_param.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_search_param.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_member_info_changed.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_member_info_changed.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_change_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_change_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_list_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_list_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_online_url.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_online_url.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_search_param.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_search_param.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_revoke_administrator.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_revoke_administrator.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_application_handle_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_application_handle_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/group_application_handle_status.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/group_application_handle_status.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_application_processed.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_application_processed.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_full_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_full_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_search_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_search_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_msg_create_info_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_msg_create_info_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_recv_c2c_text_message.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_recv_c2c_text_message.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_topic_operation_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_topic_operation_result.dart'; 2 | -------------------------------------------------------------------------------- /example/macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_conversationList_filter.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_conversationList_filter.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_application_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_application_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_friend_operation_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_friend_operation_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_application_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_application_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_attribute_changed.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_attribute_changed.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_change_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_change_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_info_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_search_param.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_search_param.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_download_progress.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_download_progress.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_extension_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_extension_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_receive_message_opt_info.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_receive_message_opt_info.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_receive_rest_custom_data.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_receive_rest_custom_data.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_recv_c2c_custom_message.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_recv_c2c_custom_message.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_recv_group_custom_message.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_recv_group_custom_message.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_recv_group_text_message.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_recv_group_text_message.dart'; 2 | -------------------------------------------------------------------------------- /example/macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "ephemeral/Flutter-Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_search_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_search_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_message_search_result_item.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_search_result_item.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/assets/libImSDKForMac.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/tencent_im_sdk_plugin_desktop/assets/libImSDKForMac.dylib -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_conversation_operation_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_conversation_operation_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_member_operation_result.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_operation_result.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_group_message_read_member_list.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_message_read_member_list.dart'; 2 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/get_group_message_read_member_list_filter.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/enum/get_group_message_read_member_list_filter.dart'; 2 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/assets/libim_flutter_desktop_lib.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/tencent_im_sdk_plugin_desktop/assets/libim_flutter_desktop_lib.dll -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_delete_conversation.dart: -------------------------------------------------------------------------------- 1 | class DeleteConversation { 2 | static formateParams(params) { 3 | return params["conversationID"]; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/assets/libim_flutter_desktop_lib.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/tencent_im_sdk_plugin_desktop/assets/libim_flutter_desktop_lib.dylib -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/test/mock/utils.dart: -------------------------------------------------------------------------------- 1 | class CommonUtils { 2 | static Map buildParam(data, {String desc = 'ok'}) => 3 | {"code": 0, "desc": desc, "data": data}; 4 | } 5 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_elem.dart: -------------------------------------------------------------------------------- 1 | /// V2TIMElem 2 | /// 3 | 4 | class V2TIMElem { 5 | Map? nextElem; 6 | 7 | V2TIMElem({this.nextElem}); 8 | } 9 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/assets/libim_flutter_desktop_lib_arm64.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/tencent_im_sdk_plugin_desktop/assets/libim_flutter_desktop_lib_arm64.dylib -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | # Additional information about this file can be found at 4 | # https://dart.dev/guides/language/analysis-options 5 | -------------------------------------------------------------------------------- /example/android/app/src/main/kotlin/com/example/example/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.example 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TencentCloud/chat-sdk-flutter/HEAD/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | # Additional information about this file can be found at 4 | # https://dart.dev/guides/language/analysis-options 5 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_conv_type.dart: -------------------------------------------------------------------------------- 1 | // 会话类型 2 | enum TIMConvType { 3 | kTIMConv_Invalid, // 无效会话 4 | kTIMConv_C2C, // 个人会话 5 | kTIMConv_Group, // 群组会话 6 | kTIMConv_System, // 系统会话,已废弃 7 | } 8 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_friend_response_action.dart: -------------------------------------------------------------------------------- 1 | enum TIMFriendResponseAction { 2 | ResponseActionAgree, // 同意 3 | ResponseActionAgreeAndAdd, // 同意并添加 4 | ResponseActionReject, // 拒绝 5 | } 6 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:flutter_lints/flutter.yaml 2 | 3 | # Additional information about this file can be found at 4 | # https://dart.dev/guides/language/analysis-options 5 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/friend_response_type_enum.dart: -------------------------------------------------------------------------------- 1 | enum FriendResponseTypeEnum { 2 | // 同意添加单向好友 3 | V2TIM_FRIEND_ACCEPT_AGREE, 4 | // 同意并添加为双向好友 5 | V2TIM_FRIEND_ACCEPT_AGREE_AND_ADD, 6 | } 7 | -------------------------------------------------------------------------------- /example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/models/v2_tim_value_callback.dart: -------------------------------------------------------------------------------- 1 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_video_elem.dart'; 2 | export 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_value_callback.dart'; 3 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_friendship_searchFieldKey.dart: -------------------------------------------------------------------------------- 1 | enum TIMFriendshipSearchFieldKey { 2 | kTIMFriendshipSearchFieldKey_Identifier, // 用户 ID 3 | kTIMFriendshipSearchFieldKey_NikeName, // 昵称 4 | kTIMFriendshipSearchFieldKey_Remark // 备注 5 | } 6 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_group_search_field_enum.dart: -------------------------------------------------------------------------------- 1 | class CGroupSearchFieldKey { 2 | // searchGroups 3 | static const kTIMGroupSearchFieldKey_GroupId = 0x01; // 群 ID 4 | static const kTIMGroupSearchFieldKey_GroupName = 0x01 << 1; // 群名称 5 | } 6 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/models/v2_tim_init_sdk.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ffi'; 2 | import 'package:ffi/ffi.dart'; 3 | 4 | class InitParams extends Struct { 5 | @Uint64() 6 | external int sdkAppID; 7 | 8 | external Pointer jsonSdkConfig; 9 | } 10 | -------------------------------------------------------------------------------- /example/lib/im/template.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Template extends StatelessWidget { 4 | @override 5 | Widget build(BuildContext context) { 6 | return Container( 7 | child: Text("Logout"), 8 | ); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_login_status_enum.dart: -------------------------------------------------------------------------------- 1 | // macos用户登录状态类型(login status) 2 | enum TIMLoginStatus { 3 | TIMLoginStatus_Logined, // 已登录 4 | TIMLoginStatus_Logining, // 登录中 5 | TIMLoginStatus_UnLogined, // 未登录 6 | TIMLoginStatus_Logouting, 7 | } 8 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/simpleMsgListenerType.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: file_names 2 | 3 | enum SimpleMsgListenerType { 4 | onRecvC2CTextMessage, 5 | onRecvC2CCustomMessage, 6 | onRecvGroupTextMessage, 7 | onRecvGroupCustomMessage 8 | } 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_get_conversation.dart: -------------------------------------------------------------------------------- 1 | class GetConversation { 2 | static formateParams(params) { 3 | return params["conversationID"]; 4 | } 5 | 6 | static formateResulter(paramsJs) { 7 | return paramsJs; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/friend_type_enum.dart: -------------------------------------------------------------------------------- 1 | enum FriendTypeEnum { 2 | ///dart站位,不能使用 3 | /// 4 | V2TIM_NUll, 5 | 6 | ///单向好友 7 | /// 8 | V2TIM_FRIEND_TYPE_SINGLE, 9 | 10 | ///互为好友 11 | /// 12 | V2TIM_FRIEND_TYPE_BOTH 13 | } 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/keyword_list_match_type.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: constant_identifier_names 2 | 3 | class V2TIMKeywordListMatchType { 4 | static const int KEYWORD_LIST_MATCH_TYPE_OR = 0; 5 | static const int KEYWORD_LIST_MATCH_TYPE_AND = 1; 6 | } 7 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/receive_message_opt_enum.dart: -------------------------------------------------------------------------------- 1 | enum ReceiveMsgOptEnum { 2 | //在线正常接收消息,离线时会进行离线推送 3 | V2TIM_RECEIVE_MESSAGE, 4 | //不会接收到消息 5 | V2TIM_NOT_RECEIVE_MESSAGE, 6 | //在线正常接收消息,离线不会有推送通知 7 | V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE, 8 | } 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 6 | -------------------------------------------------------------------------------- /example/macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @NSApplicationMain 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/README.md: -------------------------------------------------------------------------------- 1 | # tencent_im_sdk_plugin_web 2 | 3 | The web implementation of `tencent_im_sdk_plugin`. 4 | ## Usage 5 | This package is endorsed, which means you can simply use `tencent_im_sdk_plugin` normally. This package will be automatically included in your app when you do. 6 | -------------------------------------------------------------------------------- /example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip 7 | -------------------------------------------------------------------------------- /example/macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_application_type_enum.dart: -------------------------------------------------------------------------------- 1 | ///入群申请类型 2 | /// 3 | ///{@category Enums} 4 | /// 5 | enum GroupApplicationTypeEnum { 6 | ///申请入群 7 | V2TIM_GROUP_APPLICATION_GET_TYPE_JOIN, 8 | 9 | ///被邀请入群 10 | V2TIM_GROUP_APPLICATION_GET_TYPE_INVITE, 11 | } 12 | -------------------------------------------------------------------------------- /example/.tox.yml: -------------------------------------------------------------------------------- 1 | tox: 2 | type: cloud 3 | target: flutter_for_web 4 | dist: build/web 5 | wework: 6 | ? chatid 7 | product: 8 | name: 即时通信IM 9 | id: CAT010102 10 | pipelineUrl: http://tencent.coding.woa.com/p/tx/ci/job/760344/build/current 11 | clashKey: 3dbf6e59e1959236a45177f67eba8809 12 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/consumer-proguard-rules.txt: -------------------------------------------------------------------------------- 1 | # 腾讯云IM 2 | -keepclassmembers enum * { *; } 3 | -keep class androidx.lifecycle.** { *; } 4 | -keep class com.tencent.imsdk.** { *; } 5 | -keep class com.qq.qcloud.tencent_im_sdk_plugin.** { *; } 6 | -keep class com.qq.qcloud.tencent_im_sdk_plugin.manager.** { *; } 7 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/src/main/java/com/qq/qcloud/tencent_im_sdk_plugin/util/AbCallback.java: -------------------------------------------------------------------------------- 1 | package com.qq.qcloud.tencent_im_sdk_plugin.util; 2 | 3 | public abstract class AbCallback { 4 | public AbCallback(){}; 5 | public void onAbSuccess(){}; 6 | public void onAbError(int code,String desc){}; 7 | } 8 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | ## 0.0.9 3 | 4 | * update interface 5 | 6 | ## 0.0.8 7 | 8 | * Optimize dynamic library download logic 9 | 10 | 11 | ## 0.0.6 12 | 13 | * update windows10 dll 14 | 15 | ## 0.0.5 16 | 17 | * fix dylib load 18 | 19 | ## 0.0.3 20 | 21 | * add desktop support 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_group_member_role_enum.dart: -------------------------------------------------------------------------------- 1 | class CGroupMemberRole { 2 | static const kTIMMemberRole_None = 0; // 未定义 3 | static const kTIMMemberRole_Normal = 200; // 群成员 4 | static const kTIMMemberRole_Admin = 300; // 管理员 5 | static const kTIMMemberRole_Owner = 400; // 超级管理员(群主) 6 | } 7 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_get_group_attributes.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class GetGroupAttributes { 4 | static formateParams(Map params) => 5 | mapToJSObj({'groupID': params['groupID'], 'keyList': params['keys']}); 6 | } 7 | -------------------------------------------------------------------------------- /example/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_delete_group_attributes.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class DeleteGroupAttributes { 4 | static formateParams(Map params) => 5 | mapToJSObj({'groupID': params['groupID'], 'keyList': params['keys']}); 6 | } 7 | -------------------------------------------------------------------------------- /example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/TencentImSDKPluginOC.h: -------------------------------------------------------------------------------- 1 | // HelloPlugin.h 2 | // 3 | // Created by xingchenhe on 2020/11/19 4 | // Copyright (c) 2020年 Tencent. All rights reserved. 5 | // 6 | #import 7 | /* 8 | HelloPlugin 9 | */ 10 | @interface TencentImSDKPluginOC : NSObject 11 | @end 12 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_get_group_members_info.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class GetGroupMembersInfo { 4 | static Object formatParams(Map params) => mapToJSObj( 5 | {'groupID': params['groupID'], 'userIDList': params['memberList']}); 6 | } 7 | -------------------------------------------------------------------------------- /example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_add_opt_enum.dart: -------------------------------------------------------------------------------- 1 | /// 群加群方式 2 | /// 3 | /// {@category Enums} 4 | /// 5 | enum GroupAddOptTypeEnum { 6 | ///禁止加群 7 | /// 8 | V2TIM_GROUP_ADD_FORBID, 9 | 10 | ///需要管理员审批 11 | /// 12 | V2TIM_GROUP_ADD_AUTH, 13 | 14 | ///任何人可以加入 15 | /// 16 | V2TIM_GROUP_ADD_ANY 17 | } 18 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_get_conversation_list_by_id.dart: -------------------------------------------------------------------------------- 1 | class GetConversationListByIds { 2 | static formateParams(Map param) { 3 | List list = []; 4 | param["conversationIDList"].forEach((element) { 5 | list.add(element); 6 | }); 7 | 8 | return list; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /example/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_set_group_attributes.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class SetGroupAttributes { 4 | static foramteParams(Map params) => mapToJSObj({ 5 | 'groupID': params['groupID'], 6 | 'groupAttributes': mapToJSObj(params['attributes']) 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 8af6b2f038c1172e61d418869363a28dffec3cb4 8 | channel: stable 9 | 10 | project_type: plugin 11 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/friend_application_type_enum.dart: -------------------------------------------------------------------------------- 1 | enum FriendApplicationTypeEnum { 2 | V2TIM_FRIEND_APPLICATION_NULL, // dart 不支持枚举初始值,所以这里加一个null 3 | // 别人发给我的加好友请求 4 | V2TIM_FRIEND_APPLICATION_COME_IN, 5 | //我发给别人的加好友请求 6 | V2TIM_FRIEND_APPLICATION_SEND_OUT, 7 | // 别人发给我的和我发给别人的加好友请求。仅在拉取时有效。 8 | V2TIM_FRIEND_APPLICATION_BOTH, 9 | } 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 18116933e77adc82f80866c928266a5b4f1ed645 8 | channel: stable 9 | 10 | project_type: plugin 11 | -------------------------------------------------------------------------------- /example/windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: f1875d570e39de09040c8f79aa13cc56baab8db1 8 | channel: unknown 9 | 10 | project_type: package 11 | -------------------------------------------------------------------------------- /example/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_application_type.dart: -------------------------------------------------------------------------------- 1 | ///入群申请类型 2 | /// 3 | ///{@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupApplicationType { 8 | ///申请入群 9 | static const int V2TIM_GROUP_APPLICATION_GET_TYPE_JOIN = 0; 10 | 11 | ///被邀请入群 12 | static const int V2TIM_GROUP_APPLICATION_GET_TYPE_INVITE = 1; 13 | } 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_mute_group_member.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class MuteGroupMember { 4 | static Object formatParams(Map params) => mapToJSObj({ 5 | 'groupID': params['groupID'], 6 | 'userID': params['userID'], 7 | 'muteTime': params['seconds'] 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 18116933e77adc82f80866c928266a5b4f1ed645 8 | channel: stable 9 | 10 | project_type: plugin 11 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/image_types.dart: -------------------------------------------------------------------------------- 1 | /// 图片类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names, camel_case_types 6 | 7 | class V2TIM_IMAGE_TYPE { 8 | static const int V2TIM_IMAGE_TYPE_ORIGIN = 0; // 原图 9 | static const int V2TIM_IMAGE_TYPE_THUMB = 1; // 缩略图 10 | static const int V2TIM_IMAGE_TYPE_LARGE = 2; // 大图 11 | 12 | } 13 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_transfer_group_owner.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | final groupMemberRoleMapping = {"Owner": 400, "Admin": 300, "Member": 200}; 4 | 5 | class TransferGroupOwner { 6 | static Object formatParams(Map params) => mapToJSObj( 7 | {'groupID': params['groupID'], 'newOwnerID': params['userID']}); 8 | } 9 | -------------------------------------------------------------------------------- /example/windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/src/main/java/com/qq/qcloud/tencent_im_sdk_plugin/util/DownloadCallback.java: -------------------------------------------------------------------------------- 1 | package com.qq.qcloud.tencent_im_sdk_plugin.util; 2 | 3 | public abstract class DownloadCallback { 4 | public DownloadCallback(){}; 5 | public void onProgress(boolean isFinish,boolean isError,long currentSize,long totalSize,String msgID,int type,boolean isSnapshot,String path,int error_code,String error_desc){}; 6 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/user_info_allow_type.dart: -------------------------------------------------------------------------------- 1 | /// 设置用户信息时中,是否允许其他人加你好友 2 | /// 3 | /// {@category Enums} 4 | /// 5 | class AllowType { 6 | ///允许任何人添加好友 7 | /// 8 | static const int V2TIM_FRIEND_ALLOW_ANY = 0; 9 | 10 | ///添加好友需要验证 11 | /// 12 | static const int V2TIM_FRIEND_NEED_CONFIRM = 1; 13 | 14 | ///拒绝任何人添加好友 15 | /// 16 | static const int V2TIM_FRIEND_DENY_ANY = 2; 17 | } 18 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_handle_group_application.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class HandleGroupApplication { 4 | static formateParams(Map params, String type) => mapToJSObj({ 5 | 'handleAction': type, 6 | 'handleMessage': params['reason'], 7 | 'message': parse(params['webMessageInstance']) 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/at_info_types.dart: -------------------------------------------------------------------------------- 1 | /// @类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: camel_case_types, constant_identifier_names 6 | class V2_AT_INFO_TYPES { 7 | static const int TIM_AT_UNKNOWN = 0; //错误状态 8 | static const int TIM_AT_ME = 1; // @ 我 9 | static const int TIM_AT_ALL = 2; // @ 群里所有人 10 | static const int TIM_AT_ALL_AT_ME = 3; // @ 群里所有人并且单独 @ 我 11 | } 12 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/conversation_type.dart: -------------------------------------------------------------------------------- 1 | /// 会话类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class ConversationType { 8 | ///非法类型 9 | /// 10 | static const int CONVERSATION_TYPE_INVALID = 0; 11 | 12 | ///单聊 13 | /// 14 | static const int V2TIM_C2C = 1; 15 | 16 | ///群聊 17 | /// 18 | static const int V2TIM_GROUP = 2; 19 | } 20 | -------------------------------------------------------------------------------- /example/lib/provider/notice.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | 3 | class Notice with ChangeNotifier { 4 | int _noticeCount = 0; 5 | int get noticeCount => _noticeCount; 6 | 7 | int addNoticeCount(int count) { 8 | _noticeCount += count; 9 | notifyListeners(); 10 | return _noticeCount; 11 | } 12 | 13 | void removeNoticeCount() { 14 | _noticeCount = 0; 15 | notifyListeners(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/get_group_message_read_member_list_filter.dart: -------------------------------------------------------------------------------- 1 | /// 获取群消息已读(未读)成员列表type 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | enum GetGroupMessageReadMemberListFilter { 8 | ///禁止加群 9 | /// 10 | V2TIM_GROUP_MESSAGE_READ_MEMBERS_FILTER_READ, 11 | 12 | ///需要管理员审批 13 | /// 14 | V2TIM_GROUP_MESSAGE_READ_MEMBERS_FILTER_UNREAD, 15 | } 16 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/message_priority_enum.dart: -------------------------------------------------------------------------------- 1 | /// 消息优先级 2 | /// 3 | /// {@category Enums} 4 | /// 5 | enum MessagePriorityEnum { 6 | ///默认为普通优先级 7 | /// 8 | V2TIM_PRIORITY_DEFAULT, 9 | 10 | ///高优先级,一般用于礼物等重要消息 11 | /// 12 | V2TIM_PRIORITY_HIGH, 13 | 14 | ///普通优先级,一般用于普通消息 15 | /// 16 | V2TIM_PRIORITY_NORMAL, 17 | 18 | ///低优先级,一般用于点赞消息 19 | /// 20 | V2TIM_PRIORITY_LOW, 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_login.dart: -------------------------------------------------------------------------------- 1 | import 'package:js/js.dart'; 2 | 3 | // 需要传递object时可以直接使用这种形式创建 对应博客:https://stackoverflow.com/questions/33394867/passing-dart-objects-to-js-functions-in-js-interop 4 | @anonymous 5 | @JS() 6 | class LoginParams { 7 | external String get userID; 8 | external set userID(String value); 9 | 10 | external String get userSig; 11 | external set userSig(String value); 12 | } 13 | -------------------------------------------------------------------------------- /example/test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility that Flutter provides. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | void main() { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_group_member_search_field_enum.dart: -------------------------------------------------------------------------------- 1 | class CGroupMemberSearchFieldKey { 2 | // searchGroupMembers 3 | static const kTIMGroupMemberSearchFieldKey_Identifier = 0x01; // 用户 ID 4 | static const kTIMGroupMemberSearchFieldKey_NikeName = 0x01 << 1; // 昵称 5 | static const kTIMGroupMemberSearchFieldKey_Remark = 0x01 << 2; // 备注 6 | static const kTIMGroupMemberSearchFieldKey_NameCard = 0x01 << 3; // 名片 7 | } 8 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_type.dart: -------------------------------------------------------------------------------- 1 | /// 群组类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupType { 8 | static const String Work = "Work"; 9 | static const String Public = "Public"; 10 | static const String Meeting = "Meeting"; 11 | static const String AVChatRoom = "AVChatRoom"; 12 | static const String Community = "Community"; 13 | } 14 | -------------------------------------------------------------------------------- /example/windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | #include 10 | 11 | void RegisterPlugins(flutter::PluginRegistry* registry) { 12 | RecordWindowsPluginCApiRegisterWithRegistrar( 13 | registry->GetRegistrarForPlugin("RecordWindowsPluginCApi")); 14 | } 15 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_application_handle_result.dart: -------------------------------------------------------------------------------- 1 | ///申请加群处理结果 2 | /// 3 | ///{@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupApplicationHandleResult { 8 | ///拒绝申请 9 | /// 10 | static const int V2TIM_GROUP_APPLICATION_HANDLE_RESULT_REFUSE = 0; 11 | 12 | ///同意申请 13 | /// 14 | static const int V2TIM_GROUP_APPLICATION_HANDLE_RESULT_AGREE = 1; 15 | } 16 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/history_msg_get_type_enum.dart: -------------------------------------------------------------------------------- 1 | enum HistoryMsgGetTypeEnum { 2 | ///不要使用,dart枚举站位 3 | /// 4 | V2TIM_NULL, 5 | 6 | ///获取云端更老的消息 7 | /// 8 | V2TIM_GET_CLOUD_OLDER_MSG, 9 | 10 | ///获取云端更新的消息 11 | /// 12 | V2TIM_GET_CLOUD_NEWER_MSG, 13 | 14 | ///获取本地更老的消息 15 | /// 16 | V2TIM_GET_LOCAL_OLDER_MSG, 17 | 18 | ///获取本地更新的消息 19 | /// 20 | V2TIM_GET_LOCAL_NEWER_MSG, 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_init_sdk.dart: -------------------------------------------------------------------------------- 1 | import 'package:js/js.dart'; 2 | 3 | // 需要传递object时可以直接使用这种形式创建 对应博客:https://stackoverflow.com/questions/33394867/passing-dart-objects-to-js-functions-in-js-interop 4 | @anonymous 5 | @JS() 6 | class TimParams { 7 | // ignore: non_constant_identifier_names 8 | external int get SDKAppID; 9 | // ignore: non_constant_identifier_names 10 | external set SDKAppID(int value); 11 | } 12 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_add_opt_type.dart: -------------------------------------------------------------------------------- 1 | /// 群加群方式 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupAddOptType { 8 | ///禁止加群 9 | /// 10 | static const int V2TIM_GROUP_ADD_FORBID = 0; 11 | 12 | ///需要管理员审批 13 | /// 14 | static const int V2TIM_GROUP_ADD_AUTH = 1; 15 | 16 | ///任何人可以加入 17 | /// 18 | static const int V2TIM_GROUP_ADD_ANY = 2; 19 | } 20 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2GroupAtInfoEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 自定义群@信息实体 5 | class V2GroupAtInfoEntity: V2TIMGroupAtInfo { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMGroupAtInfo) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["seq"] = "\(info.seq)"; 11 | result["atType"] = info.atType.rawValue; 12 | return result; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: tencent_im_sdk_plugin_platform_interface 2 | description: tencent_im_sdk_plugin common interface 3 | version: 0.3.8+1 4 | homepage: 5 | 6 | environment: 7 | sdk: ">=2.12.0 <3.0.0" 8 | flutter: "^2.0.0" 9 | 10 | dependencies: 11 | flutter: 12 | sdk: flutter 13 | plugin_platform_interface: ^2.0.2 14 | 15 | dev_dependencies: 16 | flutter_test: 17 | sdk: flutter 18 | flutter_lints: ^1.0.0 19 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_group_join.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class V2TimGroupJoin { 4 | static Object formatParams(Map params) { 5 | final fomatedParams = { 6 | "groupID": params["groupID"], 7 | "applyMessage": params["message"] ?? "", 8 | "type": params["groupType"] ?? "", 9 | }; 10 | return mapToJSObj(fomatedParams); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /example/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2UserInfoEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus 2 | 3 | /// 自定义用户实体 4 | class V2UserInfoEntity: V2TIMUserFullInfo { 5 | /// 根据对象获得字典对象 6 | public static func getDict(info: V2TIMUserInfo) -> [String: Any] { 7 | var result: [String: Any] = [:]; 8 | result["userID"] = info.userID; 9 | result["nickName"] = info.nickName; 10 | result["faceUrl"] = info.faceURL; 11 | return result; 12 | } 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /example/macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController.init() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2GroupMemberChangeInfoEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 自定义群信息实体 5 | class V2GroupMemberChangeInfoEntity: V2TIMGroupMemberChangeInfo { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMGroupMemberChangeInfo) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["userID"] = info.userID; 11 | result["muteTime"] = info.muteTime; 12 | return result; 13 | } 14 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_member_role_enum.dart: -------------------------------------------------------------------------------- 1 | /// 群成员类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | enum GroupMemberRoleTypeEnum { 8 | ///未定义(没有获取该字段) 9 | /// 10 | V2TIM_GROUP_MEMBER_UNDEFINED, 11 | 12 | ///群成员 13 | /// 14 | V2TIM_GROUP_MEMBER_ROLE_MEMBER, 15 | 16 | ///群管理员 17 | /// 18 | V2TIM_GROUP_MEMBER_ROLE_ADMIN, 19 | 20 | ///群主 21 | /// 22 | V2TIM_GROUP_MEMBER_ROLE_OWNER, 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_member_filter_enum.dart: -------------------------------------------------------------------------------- 1 | /// 群成员过滤类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | enum GroupMemberFilterTypeEnum { 6 | ///全部成员 7 | /// 8 | V2TIM_GROUP_MEMBER_FILTER_ALL, 9 | 10 | ///群主 11 | /// 12 | V2TIM_GROUP_MEMBER_FILTER_OWNER, 13 | 14 | ///管理员 15 | /// 16 | V2TIM_GROUP_MEMBER_FILTER_ADMIN, 17 | 18 | /// dart站位,不可使用 19 | /// 20 | V2TIM_NULL, 21 | 22 | ///普通成员 23 | /// 24 | V2TIM_GROUP_MEMBER_FILTER_COMMON 25 | } 26 | -------------------------------------------------------------------------------- /example/macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | com.apple.security.app-sandbox 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/listener/APNSListener.swift: -------------------------------------------------------------------------------- 1 | // 2 | // APNSListener.swift 3 | // tencent_im_sdk_plugin 4 | // 5 | // Created by 林智 on 2020/12/18. 6 | // 7 | 8 | import Foundation 9 | import ImSDK_Plus 10 | 11 | class APNSListener: NSObject, V2TIMAPNSListener { 12 | public static var count: UInt32 = 0; 13 | 14 | public func onSetAPPUnreadCount() -> UInt32 { 15 | print("im sdk set unreadcount :") 16 | print(SDKManager.uc) 17 | return SDKManager.uc 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /example/windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /example/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/V2TIMManager.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: prefer_function_declarations_over_variables, file_names 2 | 3 | typedef SetAPPUnreadCountCallback = void Function(int unreadCount); 4 | 5 | class V2TIMAPNSListener { 6 | SetAPPUnreadCountCallback onSetAPPUnreadCount = (int unreadCount) {}; 7 | V2TIMAPNSListener({ 8 | SetAPPUnreadCountCallback? onSetAPPUnreadCount, 9 | }) { 10 | if (onSetAPPUnreadCount != null) { 11 | this.onSetAPPUnreadCount = onSetAPPUnreadCount; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/user_status_type.dart: -------------------------------------------------------------------------------- 1 | /// 用户在线状态 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class UserStatusType { 8 | ///未知状态 9 | /// 10 | static const int V2TIM_USER_STATUS_UNKNOWN = 0; 11 | 12 | ///在线状态 13 | /// 14 | static const int V2TIM_USER_STATUS_ONLINE = 1; 15 | 16 | ///离线状态 17 | /// 18 | static const int V2TIM_USER_STATUS_OFFLINE = 2; 19 | 20 | ///未登录过 21 | /// 22 | static const int V2TIM_USER_STATUS_UNLOGINED = 3; 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/log_level_enum.dart: -------------------------------------------------------------------------------- 1 | enum LogLevelEnum { 2 | /// 无日志 3 | /// 4 | V2TIM_LOG_NONE, 5 | 6 | /// dart枚举站位,不可使用 7 | /// 8 | V2TIM_NULL, 9 | 10 | /// 全量日志 11 | /// 12 | V2TIM_LOG_ALL, 13 | 14 | ///输出 DEBUG,INFO,WARNING,ERROR 级别的 log 15 | /// 16 | V2TIM_LOG_DEBUG, 17 | 18 | ///输出 INFO,WARNING,ERROR 级别的 log 3 19 | /// 20 | V2TIM_LOG_INFO, 21 | 22 | ///输出 WARNING,ERROR 级别的 log 4 23 | /// 24 | V2TIM_LOG_WARN, 25 | 26 | ///输出 ERROR 级别的 log 5 27 | V2TIM_LOG_ERROR 28 | } 29 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_elem_type.dart: -------------------------------------------------------------------------------- 1 | enum TIMElemType { 2 | kTIMElem_Text, // 文本元素 3 | kTIMElem_Image, // 图片元素 4 | kTIMElem_Sound, // 声音元素 5 | kTIMElem_Custom, // 自定义元素 6 | kTIMElem_File, // 文件元素 7 | kTIMElem_GroupTips, // 群组系统消息元素 8 | kTIMElem_Face, // 表情元素 9 | kTIMElem_Location, // 位置元素 10 | kTIMElem_GroupReport, // 群组系统通知元素 11 | kTIMElem_Video, // 视频元素 12 | kTIMElem_FriendChange, // 关系链变更消息元素 13 | kTIMElem_ProfileChange, // 资料变更消息元素 14 | kTIMElem_Merge, // 合并消息元素 15 | kTIMElem_Invalid, // 未知元素类型(-1) 16 | } 17 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/FriendOperationResultEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus 2 | 3 | 4 | // 未决对象实体 5 | public class FriendOperationResultEntity : NSObject{ 6 | var userID : String?; 7 | var resultCode : Int?; 8 | var resultInfo : String?; 9 | 10 | override init() { 11 | } 12 | 13 | init(result: V2TIMFriendOperationResult) { 14 | super.init(); 15 | self.userID = result.userID; 16 | self.resultCode = result.resultCode; 17 | self.resultInfo = result.resultInfo; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2FriendInfoResultEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus; 2 | 3 | // 朋友实体 4 | public class V2FriendInfoResultEntity : V2TIMFriendInfoResult { 5 | 6 | public static func getDict(info: V2TIMFriendInfoResult) -> [String: Any] { 7 | var result: [String: Any] = [:]; 8 | result["resultCode"] = info.resultCode; 9 | result["resultInfo"] = info.resultInfo; 10 | result["relation"] = info.relation.rawValue; 11 | result["friendInfo"] = V2FriendInfoEntity.getDict(info: info.friendInfo); 12 | return result; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2GroupChangeInfoEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 自定义群改变信息 5 | class V2GroupChangeInfoEntity: V2TIMGroupChangeInfo { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMGroupChangeInfo) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["type"] = info.type.rawValue; 11 | result["key"] = info.key; 12 | result["value"] = info.value; 13 | result["boolValue"] = info.boolValue 14 | return result; 15 | } 16 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/message_priority.dart: -------------------------------------------------------------------------------- 1 | /// 消息优先级 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class MessagePriority { 8 | ///默认为普通优先级 9 | /// 10 | static const int V2TIM_PRIORITY_DEFAULT = 0; 11 | 12 | ///高优先级,一般用于礼物等重要消息 13 | /// 14 | static const int V2TIM_PRIORITY_HIGH = 1; 15 | 16 | ///普通优先级,一般用于普通消息 17 | /// 18 | static const int V2TIM_PRIORITY_NORMAL = 2; 19 | 20 | ///低优先级,一般用于点赞消息 21 | /// 22 | static const int V2TIM_PRIORITY_LOW = 3; 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/history_message_get_type.dart: -------------------------------------------------------------------------------- 1 | /// 获取历史消息类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class HistoryMessageGetType { 8 | ///获取云端更老的消息 9 | /// 10 | static const V2TIM_GET_CLOUD_OLDER_MSG = 1; 11 | 12 | ///获取云端更新的消息 13 | /// 14 | static const V2TIM_GET_CLOUD_NEWER_MSG = 2; 15 | 16 | ///获取本地更老的消息 17 | /// 18 | static const V2TIM_GET_LOCAL_OLDER_MSG = 3; 19 | 20 | ///获取本地更新的消息 21 | /// 22 | static const V2TIM_GET_LOCAL_NEWER_MSG = 4; 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_invite_user_to_group.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class InviteUserToGroup { 4 | static Object formatParams(Map params) => mapToJSObj({ 5 | 'groupID': params['groupID'], 6 | 'userIDList': params['userList'], 7 | }); 8 | 9 | static formatResult(Map params) { 10 | final userList = params['successUserIDList'] as List; 11 | return userList.map((e) => {'memberID': e, 'result': 1}).toList(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_application_handle_status.dart: -------------------------------------------------------------------------------- 1 | ///加群申请处理状态 2 | /// 3 | ///{@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupApplicationHandleStatus { 8 | ///未处理 9 | /// 10 | static const int V2TIM_GROUP_APPLICATION_HANDLE_STATUS_UNHANDLED = 0; 11 | 12 | ///被他人处理 13 | /// 14 | static const int V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_OTHER = 1; 15 | 16 | ///自己已处理 17 | /// 18 | static const int V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_SELF = 2; 19 | } 20 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_kick_group_member.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class KickGroupMember { 4 | static Object formatParams(Map params) => mapToJSObj({ 5 | 'groupID': params['groupID'], 6 | 'userIDList': params['memberList'], 7 | 'reason': params['reason'], 8 | }); 9 | 10 | static formatResult(params) { 11 | final userList = params.successUserIDList as List; 12 | return userList.map((e) => {'memberID': e, 'result': 1}).toList(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /example/lib/custom_animation.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_easyloading/flutter_easyloading.dart'; 3 | 4 | class CustomAnimation extends EasyLoadingAnimation { 5 | CustomAnimation(); 6 | 7 | @override 8 | Widget buildWidget( 9 | Widget child, 10 | AnimationController controller, 11 | AlignmentGeometry alignment, 12 | ) { 13 | return Opacity( 14 | opacity: controller.value, 15 | child: RotationTransition( 16 | turns: controller, 17 | child: child, 18 | ), 19 | ); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_group_member_modify_enum.dart: -------------------------------------------------------------------------------- 1 | class CGroupMemberModifyFlag { 2 | // setGroupMemeberInfo 3 | static const kTIMGroupMemberModifyFlag_None = 0x00; // 4 | static const kTIMGroupMemberModifyFlag_MsgFlag = 0x01; // 修改消息接收选项 5 | static const kTIMGroupMemberModifyFlag_MemberRole = 0x01 << 1; // 修改成员角色 6 | static const kTIMGroupMemberModifyFlag_ShutupTime = 0x01 << 2; // 修改禁言时间 7 | static const kTIMGroupMemberModifyFlag_NameCard = 0x01 << 3; // 修改群名片 8 | static const kTIMGroupMemberModifyFlag_Custom = 0x01 << 4; // 修改群成员自定义信息 9 | } 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_member_role.dart: -------------------------------------------------------------------------------- 1 | /// 群成员类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupMemberRoleType { 8 | ///未定义(没有获取该字段) 9 | /// 10 | static const int V2TIM_GROUP_MEMBER_UNDEFINED = 0; 11 | 12 | ///群成员 13 | /// 14 | static const int V2TIM_GROUP_MEMBER_ROLE_MEMBER = 200; 15 | 16 | ///群管理员 17 | /// 18 | static const int V2TIM_GROUP_MEMBER_ROLE_ADMIN = 300; 19 | 20 | ///群主 21 | /// 22 | static const int V2TIM_GROUP_MEMBER_ROLE_OWNER = 400; 23 | } 24 | -------------------------------------------------------------------------------- /example/macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | import geolocator_apple 9 | import path_provider_macos 10 | import record_macos 11 | 12 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 13 | GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin")) 14 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) 15 | RecordMacosPlugin.register(with: registry.registrar(forPlugin: "RecordMacosPlugin")) 16 | } 17 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/v2_tim_conversation_marktype.dart: -------------------------------------------------------------------------------- 1 | /// class V2TimConversationMarkType { 2 | 3 | /// 4 | /// {@category Models} 5 | /// 6 | class V2TimConversationMarkType { 7 | ///会话标星 8 | /// 9 | static const int V2TIM_CONVERSATION_MARK_TYPE_STAR = 0; 10 | 11 | ///会话标记未读(重要会话) 12 | /// 13 | static const int V2TIM_CONVERSATION_MARK_TYPE_UNREAD = 1; 14 | 15 | ///会话折叠 16 | /// 17 | static const int V2TIM_CONVERSATION_MARK_TYPE_FOLD = 2; 18 | 19 | ///会话隐藏 20 | /// 21 | static const int V2TIM_CONVERSATION_MARK_TYPE_HIDE = 3; 22 | } 23 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .vagrant/ 3 | .sconsign.dblite 4 | .svn/ 5 | 6 | .DS_Store 7 | *.swp 8 | profile 9 | 10 | DerivedData/ 11 | build/ 12 | GeneratedPluginRegistrant.h 13 | GeneratedPluginRegistrant.m 14 | 15 | .generated/ 16 | 17 | *.pbxuser 18 | *.mode1v3 19 | *.mode2v3 20 | *.perspectivev3 21 | 22 | !default.pbxuser 23 | !default.mode1v3 24 | !default.mode2v3 25 | !default.perspectivev3 26 | 27 | xcuserdata 28 | 29 | *.moved-aside 30 | 31 | *.pyc 32 | *sync/ 33 | Icon? 34 | .tags* 35 | 36 | /Flutter/Generated.xcconfig 37 | /Flutter/flutter_export_environment.sh -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_member_filter_type.dart: -------------------------------------------------------------------------------- 1 | /// 群成员过滤类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupMemberFilterType { 8 | ///全部成员 9 | /// 10 | static const int V2TIM_GROUP_MEMBER_FILTER_ALL = 0x00; 11 | 12 | ///群主 13 | /// 14 | static const int V2TIM_GROUP_MEMBER_FILTER_OWNER = 0x01; 15 | 16 | ///管理员 17 | /// 18 | static const int V2TIM_GROUP_MEMBER_FILTER_ADMIN = 0x02; 19 | 20 | ///普通成员 21 | /// 22 | static const int V2TIM_GROUP_MEMBER_FILTER_COMMON = 0x04; 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_set_group_member_role.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/enum/group_member_role.dart'; 2 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 3 | 4 | final groupMemberRoleMapping = {"Owner": 400, "Admin": 300, "Member": 200}; 5 | 6 | class SetGroupMemberRole { 7 | static Object formatParams(Map params) => mapToJSObj({ 8 | 'groupID': params['groupID'], 9 | 'userID': params['userID'], 10 | 'role': GroupMemberRoleWeb.convertGroupMemberRoleToWeb(params['role']) 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_created.dart: -------------------------------------------------------------------------------- 1 | /// V2TimGroupCreated 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupCreated { 6 | late String groupID; 7 | 8 | V2TimGroupCreated({ 9 | required this.groupID, 10 | }); 11 | 12 | V2TimGroupCreated.fromJson(Map json) { 13 | groupID = json['groupID']; 14 | } 15 | 16 | Map toJson() { 17 | final Map data = {}; 18 | data['groupID'] = groupID; 19 | return data; 20 | } 21 | } 22 | 23 | // { 24 | // "groupID":"" 25 | // } 26 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_quit_from_group.dart: -------------------------------------------------------------------------------- 1 | /// V2TimQuitFromGroup 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimQuitFromGroup { 6 | late String groupID; 7 | 8 | V2TimQuitFromGroup({ 9 | required this.groupID, 10 | }); 11 | 12 | V2TimQuitFromGroup.fromJson(Map json) { 13 | groupID = json['groupID']; 14 | } 15 | 16 | Map toJson() { 17 | final Map data = {}; 18 | data['groupID'] = groupID; 19 | return data; 20 | } 21 | } 22 | 23 | // { 24 | // "groupID":"" 25 | // } 26 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/utils/utils.dart: -------------------------------------------------------------------------------- 1 | 2 | 3 | import 'package:tencent_im_sdk_plugin_platform_interface/utils/const.dart'; 4 | 5 | class Utils { 6 | ///@nodoc 7 | /// 8 | static List getAbility(){ 9 | String t = StackTrace.current.toString(); 10 | List ab = List.empty(growable: true); 11 | TencentIMSDKCONST.scenes.keys.forEach((element) { 12 | if(t.contains(element)){ 13 | if(TencentIMSDKCONST.scenes.keys.contains(element)){ 14 | ab.add(TencentIMSDKCONST.scenes[element]!); 15 | } 16 | } 17 | }); 18 | return ab; 19 | } 20 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/log_level.dart: -------------------------------------------------------------------------------- 1 | /// 日志等级 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class LogLevel { 8 | ///不输出任何 sdk log 9 | /// 10 | static const int V2TIM_LOG_NONE = 0; 11 | 12 | ///输出 DEBUG,INFO,WARNING,ERROR 级别的 log 13 | static const int V2TIM_LOG_DEBUG = 3; 14 | 15 | ///输出 INFO,WARNING,ERROR 级别的 log 16 | /// 17 | static const int V2TIM_LOG_INFO = 4; 18 | 19 | ///输出 WARNING,ERROR 级别的 log 20 | /// 21 | static const int V2TIM_LOG_WARN = 5; 22 | 23 | ///输出 ERROR 级别的 log 24 | static const int V2TIM_LOG_ERROR = 6; 25 | } 26 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/FriendCheckResultEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus 2 | 3 | 4 | // 好友关系检测返回对象 5 | public class FriendCheckResultEntity : NSObject{ 6 | var userID : String?; 7 | var resultCode : Int?; 8 | var resultInfo : String?; 9 | var resultType : Int?; 10 | 11 | override init() { 12 | } 13 | 14 | init(result : V2TIMFriendCheckResult) { 15 | super.init(); 16 | self.userID = result.userID; 17 | self.resultCode = result.resultCode; 18 | self.resultInfo = result.resultInfo; 19 | self.resultType = result.relationType.rawValue; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/message_status.dart: -------------------------------------------------------------------------------- 1 | /// 消息状态 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class MessageStatus { 8 | ///消息发送中 9 | /// 10 | static const int V2TIM_MSG_STATUS_SENDING = 1; 11 | 12 | ///消息发送成功 13 | /// 14 | static const int V2TIM_MSG_STATUS_SEND_SUCC = 2; 15 | 16 | ///消息发送失败 17 | /// 18 | static const int V2TIM_MSG_STATUS_SEND_FAIL = 3; 19 | 20 | ///消息被删除 21 | /// 22 | static const int V2TIM_MSG_STATUS_HAS_DELETED = 4; 23 | 24 | ///被撤销的消息 25 | /// 26 | static const int V2TIM_MSG_STATUS_LOCAL_REVOKED = 6; 27 | } 28 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/tencent_im_sdk_plugin.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin/manager/v2_tim_manager.dart'; 2 | import 'package:flutter/services.dart'; 3 | 4 | /// TencentImSDKPlugin entry 5 | /// 6 | class TencentImSDKPlugin { 7 | static const MethodChannel _channel = 8 | const MethodChannel('tencent_im_sdk_plugin'); 9 | 10 | static V2TIMManager? manager; 11 | 12 | static V2TIMManager managerInstance() { 13 | if (manager == null) { 14 | manager = V2TIMManager(_channel); 15 | } 16 | 17 | return manager!; 18 | } 19 | 20 | static V2TIMManager v2TIMManager = TencentImSDKPlugin.managerInstance(); 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/utils/ThreadManager.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import ImSDK_Plus 3 | 4 | /* 5 | onReciveMessage时防止线程进入过多而导致线程卡死的问题, 6 | 而为Hydra封装的一个线程数量管理类 7 | */ 8 | //public class HydraThreadManager { 9 | // var limit: Int; 10 | // var queue: [Any] = []; 11 | // var bufferArr: [Any] = []; 12 | // var curThreadNum = 0; 13 | // 14 | // init(limit: Int) { 15 | // self.limit = limit 16 | // } 17 | // 18 | // public getThreadLimit() { 19 | // 20 | // } 21 | // 22 | // public addThread() { 23 | // self.curThreadNum ++ 24 | // self.queue.append(prmise) 25 | // 26 | // } 27 | // 28 | //} 29 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/v2_signaling_action_type.dart: -------------------------------------------------------------------------------- 1 | /// 信令类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | /// 7 | class V2SignalingActionType { 8 | /// 邀请方发起邀请 9 | static const int SIGNALING_ACTION_TYPE_INVITE = 1; 10 | 11 | /// 邀请方取消邀请 12 | static const int SIGNALING_ACTION_TYPE_CANCEL_INVITE = 2; 13 | 14 | /// 被邀请方接受邀请 15 | static const int SIGNALING_ACTION_TYPE_ACCEPT_INVITE = 3; 16 | 17 | /// 被邀请方拒绝邀请 18 | static const int SIGNALING_ACTION_TYPE_REJECT_INVITE = 4; 19 | 20 | /// 邀请超时 21 | static const int SIGNALING_ACTION_TYPE_INVITE_TIMEOUT = 5; 22 | } 23 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/test/mock/mock_data/v2_tim_manager_mock_data.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: unused_import 2 | 3 | /* 不能直接使用native中定义的那些数据类型,web SDK返回的消息是有很大区别的 */ 4 | import '../utils.dart'; 5 | 6 | class V2TimManagerMockData { 7 | // login 8 | static const Map loginMockParams = { 9 | "userID": "hexingcheng", 10 | "userSig": "he sir always 996" 11 | }; 12 | 13 | static const Map loginMockRsultSuccMap = { 14 | "code": 0, 15 | "desc": "login success" 16 | }; 17 | 18 | static const Map loginMockRsultFailMap = { 19 | "code": 0, 20 | "desc": "login failed" 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /example/macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2MessageReceiptEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 自定义消息响应实体 5 | class V2MessageReceiptEntity: V2TIMMessageReceipt { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMMessageReceipt) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["userID"] = info.userID; 11 | result["timestamp"] = info.timestamp; 12 | result["groupID"] = info.groupID; 13 | result["msgID"] = info.msgID; 14 | result["readCount"] = info.readCount; 15 | result["unreadCount"] = info.unreadCount; 16 | return result; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.0.1 2 | 3 | * tencent_im_sdk_plugin web 实现 4 | 5 | ## 0.0.2 6 | 7 | * 升级platform_interface 8 | 9 | ## 0.0.3 10 | 11 | * 升级platform_interface支持事件回调多次监听 12 | 13 | ## 0.0.4 14 | * 升级platform_interface支持异步事件监听 15 | 16 | ## 0.0.5 17 | * 修复release 模式下报错问题 18 | 19 | ## 0.0.6 20 | * 更新依赖 21 | 22 | ## 0.0.7 23 | * 更新依赖 24 | 25 | ## 0.0.9 26 | * 新增接口 27 | 28 | ## 0.1.0 29 | * 升级interface 30 | 31 | ## 0.1.1 32 | * 升级interface 33 | 34 | ## 0.1.2 35 | * 修改grouplistener 36 | 37 | ## 0.1.3 38 | * 修改初始化SDK的传参 39 | 40 | ## 0.2.7 41 | * 升级SDK 42 | 43 | ## 0.2.8 44 | * 升级SDK 45 | 46 | ## 0.3.1 47 | * 升级SDK 48 | 49 | ## 0.3.5 50 | * 升级interface -------------------------------------------------------------------------------- /example/macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = example 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = example.example 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2022 example. All rights reserved. 15 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/README.md: -------------------------------------------------------------------------------- 1 | # im_flutter_plugin_platform_interface 2 | A common platform interface for the `tencent_im_sdk_plugin` plugin. 3 | 4 | This interface allows platform-specific implementations of the `tencent_im_sdk_plugin` plugin, as well as the plugin itself, to ensure they are supporting the same interface. 5 | 6 | ## Usage 7 | 8 | To implement a new platform-specific implementation of `tencent_im_sdk_plugin`, extend `ImFlutterPlatform` with an implementation that performs the platform-specific behavior, and when you register your plugin, set the default `ImFlutterPlatform` by calling `ImFlutterPlatform.instance = MyPlatformTencentIMSDKPlugin()`. 9 | 10 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_callback.dart: -------------------------------------------------------------------------------- 1 | /// V2TimCallback 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimCallback { 6 | late int code; 7 | late String desc; 8 | 9 | V2TimCallback({ 10 | required this.code, 11 | required this.desc, 12 | }); 13 | 14 | V2TimCallback.fromJson(Map json) { 15 | code = json['code']; 16 | desc = json['desc']; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data['code'] = code; 22 | data['desc'] = desc; 23 | return data; 24 | } 25 | } 26 | // { 27 | // code:0, 28 | // desc:'' 29 | // } 30 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2FriendApplicationResultEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus 2 | 3 | 4 | // 未决对象实体 5 | public class V2FriendApplicationResultEntity : NSObject{ 6 | var unreadCount : UInt64?; 7 | var applicationList : [[String: Any]]?; 8 | 9 | override init() { 10 | } 11 | 12 | init(result : V2TIMFriendApplicationResult) { 13 | super.init(); 14 | self.unreadCount = result.unreadCount; 15 | var applicationList: [[String: Any]] = []; 16 | for item in result.applicationList { 17 | applicationList.append(V2FriendApplicationEntity.getDict(info: item as! V2TIMFriendApplication)); 18 | } 19 | self.applicationList = applicationList; 20 | } 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /example/web1/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "package:example", 3 | "short_name": "package:example", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | migrate_working_dir/ 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | # Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. 26 | /pubspec.lock 27 | **/doc/api/ 28 | .dart_tool/ 29 | .packages 30 | build/ 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_member.dart: -------------------------------------------------------------------------------- 1 | /// V2TimMember 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimMember { 6 | late String userId; 7 | late String role; 8 | 9 | V2TimMember({ 10 | required this.userId, 11 | required this.role, 12 | }); 13 | 14 | V2TimMember.fromJson(Map json) { 15 | userId = json['userId']; 16 | role = json['role']; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data['userId'] = userId; 22 | data['role'] = role; 23 | return data; 24 | } 25 | } 26 | 27 | // { 28 | // "userId":"", 29 | // "role":"" 30 | // } 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2FriendApplicationEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 好友申请实体 5 | class V2FriendApplicationEntity: V2TIMFriendApplication { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMFriendApplication) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["userID"] = info.userID; 11 | result["nickname"] = info.nickName; 12 | result["faceUrl"] = info.faceUrl; 13 | result["addTime"] = info.addTime; 14 | result["addSource"] = info.addSource; 15 | result["addWording"] = info.addWording; 16 | result["type"] = info.type.rawValue; 17 | return result; 18 | } 19 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_at_info.dart: -------------------------------------------------------------------------------- 1 | /// V2TimGroupAtInfo 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupAtInfo { 6 | late String seq; 7 | late int atType; 8 | 9 | V2TimGroupAtInfo({ 10 | required this.seq, 11 | required this.atType, 12 | }); 13 | 14 | V2TimGroupAtInfo.fromJson(Map json) { 15 | seq = json['seq']; 16 | atType = json['atType']; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data['seq'] = seq; 22 | data['atType'] = atType; 23 | return data; 24 | } 25 | } 26 | 27 | // { 28 | // "seq":0, 29 | // "atType":0 30 | // } 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_member.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role_enum.dart'; 2 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/utils.dart'; 3 | 4 | class V2TimGroupMember { 5 | late String userID; 6 | late GroupMemberRoleTypeEnum role; 7 | V2TimGroupMember({required this.userID, required this.role}); 8 | fromJson(String userID, GroupMemberRoleTypeEnum role) { 9 | this.userID = userID; 10 | this.role = role; 11 | } 12 | 13 | Map toJson() { 14 | return { 15 | "userID": userID, 16 | "role": EnumUtils.convertGroupMemberRoleTypeEnum(role) 17 | }; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_receive_message_opt_info.dart: -------------------------------------------------------------------------------- 1 | class V2TimReceiveMessageOptInfo { 2 | late int? c2CReceiveMessageOpt; 3 | late String userID; 4 | 5 | V2TimReceiveMessageOptInfo({ 6 | this.c2CReceiveMessageOpt, 7 | required this.userID, 8 | }); 9 | 10 | V2TimReceiveMessageOptInfo.fromJson(Map jsonStr) { 11 | c2CReceiveMessageOpt = jsonStr['c2CReceiveMessageOpt']; 12 | userID = jsonStr['userID']; 13 | } 14 | Map toJson() { 15 | final Map data = {}; 16 | data['c2CReceiveMessageOpt'] = c2CReceiveMessageOpt; 17 | data['userID'] = userID; 18 | return data; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_friend_black_list.dart: -------------------------------------------------------------------------------- 1 | class FriendBlackList { 2 | static formateBlackListItem(userID) { 3 | return { 4 | "userID": userID, 5 | "friendRemark": null, 6 | "friendGroups": [], 7 | "friendCustomInfo": {}, 8 | "userProfile": { 9 | "userID": userID, 10 | }, 11 | }; 12 | } 13 | 14 | static List formateBlackList(list) { 15 | final resultArr = []; 16 | list.forEach((item) => resultArr.add(formateBlackListItem(item))); 17 | return resultArr; 18 | } 19 | 20 | static List formateDeleteBlackListRes(List list) { 21 | return list.map((e) => {"userID": e, "resultCode": 0}).toList(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "1.0.0", 4 | "description": "为帮助您更好的理解IM SDK的各API,[我们提供了API Example](https://github.com/TencentCloud/TIMSDK/tree/master/Flutter/IMSDK/im-flutter-plugin/tencent_im_sdk_plugin/example),演示各个API的调用及监听的触发。", 5 | "main": "index.js", 6 | "directories": { 7 | "lib": "lib", 8 | "test": "test" 9 | }, 10 | "scripts": { 11 | "test": "echo \"Error: no test specified\" && exit 1", 12 | "tox:build@dev": "npm run build", 13 | "tox:publish@dev": "tox publish test --silence", 14 | "tox:publish@master": "tox publish online --silence", 15 | "tox:build@master": "npm run build" 16 | }, 17 | "keywords": [], 18 | "author": "", 19 | "license": "ISC" 20 | } -------------------------------------------------------------------------------- /example/ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/GroupMemberOperationResultEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus 2 | 3 | 4 | // 群成员结实体 5 | public class GroupMemberOperationResultEntity :NSObject{ 6 | 7 | /** 8 | * 用户ID 9 | */ 10 | var userID : String?; 11 | 12 | /** 13 | * 结果 14 | */ 15 | var result : Int?; 16 | 17 | /** 18 | * 兼容example,example统一使用的memberID和userId相同 19 | */ 20 | var memberID : String?; 21 | 22 | override init() { 23 | } 24 | 25 | init(result : V2TIMGroupMemberOperationResult) { 26 | super.init(); 27 | self.userID = result.userID; 28 | self.result = result.result.rawValue; 29 | self.memberID = result.userID; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /example/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.6.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/dartdoc_options.yaml: -------------------------------------------------------------------------------- 1 | dartdoc: 2 | categories: 3 | "Manager": 4 | markdown: ./doc/manager.md 5 | name: Manager 6 | "Models": 7 | markdown: ./doc/models.md 8 | name: Models 9 | "Enums": 10 | markdown: ./doc/enums.md 11 | name: Enums 12 | categoryOrder: ["Manager","Enums","Models"] 13 | # examplePathPrefix: 'examples' 14 | # includeExternal: ['bin/unusually_located_library.dart'] 15 | nodoc: ['lib/tencent_im_sdk_plugin.dart'] 16 | # linkTo: 17 | # url: "https://my.dartdocumentationsite.org/dev/%v%" 18 | showUndocumentedCategories: true 19 | ignore: 20 | - ambiguous-doc-reference 21 | errors: 22 | - unresolved-doc-reference 23 | warnings: 24 | - tool-error -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/.settings/org.eclipse.buildship.core.prefs: -------------------------------------------------------------------------------- 1 | arguments=--init-script /var/folders/23/08s97jx93xs_22x3l8b14xvc0000gn/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle --init-script /var/folders/23/08s97jx93xs_22x3l8b14xvc0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle 2 | auto.sync=false 3 | build.scans.enabled=false 4 | connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.4.2)) 5 | connection.project.dir= 6 | eclipse.preferences.version=1 7 | gradle.user.home= 8 | java.home=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 9 | jvm.arguments= 10 | offline.mode=false 11 | override.workspace.settings=true 12 | show.console.view=true 13 | show.executions.view=true 14 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2GroupApplicationResultEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 群申请结果实体 5 | class V2GroupApplicationResultEntity: V2TIMGroupApplicationResult { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMGroupApplicationResult) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["unreadCount"] = info.unreadCount; 11 | var groupApplicationList: [[String: Any]] = []; 12 | for item in info.applicationList! { 13 | groupApplicationList.append(V2GroupApplicationEntity.getDict(info: item as! V2TIMGroupApplication)) 14 | } 15 | result["groupApplicationList"] = groupApplicationList; 16 | return result; 17 | } 18 | } -------------------------------------------------------------------------------- /example/windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/listener/LogListener.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SDKListener.swift 3 | // tencent_im_sdk_plugin 4 | // 5 | // Created by 林智 on 2020/12/18. 6 | // 7 | 8 | import Foundation 9 | import ImSDK_Plus 10 | 11 | public class SDKLogListener: NSObject { 12 | let listenerUuid:String; 13 | init(listenerUid:String) { 14 | listenerUuid = listenerUid; 15 | } 16 | 17 | 18 | public func onLog(_ level:V2TIMLogLevel, logContent:String) { 19 | var data:[String:Any] = [:]; 20 | 21 | data["level"] = level.rawValue; 22 | data["content"] = logContent; 23 | 24 | TencentImSDKPlugin.invokeListener(type: ListenerType.onLog, method: "initSDKListener", data: data, listenerUuid: listenerUuid) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/test/im_flutter_plugin_platform_interface_desktop.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/services.dart'; 2 | import 'package:flutter_test/flutter_test.dart'; 3 | 4 | void main() { 5 | const MethodChannel channel = 6 | MethodChannel('im_flutter_plugin_platform_interface'); 7 | 8 | TestWidgetsFlutterBinding.ensureInitialized(); 9 | 10 | setUp(() { 11 | channel.setMockMethodCallHandler((MethodCall methodCall) async { 12 | return '42'; 13 | }); 14 | }); 15 | 16 | tearDown(() { 17 | channel.setMockMethodCallHandler(null); 18 | }); 19 | 20 | test('getPlatformVersion', () async { 21 | expect(true, true); 22 | // expect(await ImFlutterPluginPlatformInterface.platformVersion, '42'); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/utils/load_dylib.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ffi'; 2 | 3 | import 'package:tencent_im_sdk_plugin_desktop/utils/tools.dart'; 4 | 5 | import 'ffi.dart'; 6 | 7 | class LoadDyLib { 8 | DynamicLibrary load() { 9 | // String p = resolveDylibPath( 10 | // 'libim_flutter_desktop_lib' 11 | // ); 12 | // print(const String.fromEnvironment("IM_DESKTOP_LIB_PATH")); 13 | // print("当前路径"); 14 | // print(p); 15 | // String p = Platform.script 16 | // .resolve(Tools.getDyLibNameByPlatform()) 17 | // .toFilePath(); 18 | final DynamicLibrary nativeAddLib = 19 | getDyLibModule(Tools.getDyLibNameByPlatform()); 20 | // final DynamicLibrary nativeAddLib = DynamicLibrary.open(p); 21 | return nativeAddLib; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_member_change_info.dart: -------------------------------------------------------------------------------- 1 | /// V2TIMGroupMemberChangeInfo 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupMemberChangeInfo { 6 | String? userID; 7 | int? muteTime; 8 | 9 | V2TimGroupMemberChangeInfo({ 10 | this.userID, 11 | this.muteTime, 12 | }); 13 | 14 | V2TimGroupMemberChangeInfo.fromJson(Map json) { 15 | userID = json['userID']; 16 | muteTime = json['muteTime']; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data['userID'] = userID; 22 | data['muteTime'] = muteTime; 23 | return data; 24 | } 25 | } 26 | 27 | // { 28 | // "userID":"", 29 | // "muteTime":0 30 | // } 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_notice_message_listiner.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info.dart'; 2 | 3 | class NoticeMessageListenner { 4 | String listennerName; 5 | String groupID; 6 | late V2TimGroupMemberInfo opUser = V2TimGroupMemberInfo( 7 | faceUrl: '', userID: '', nickName: '', nameCard: '', friendRemark: ''); 8 | late bool isAgreeJoin; 9 | late String opReason; 10 | late String customData; 11 | int? recvOpt; 12 | 13 | NoticeMessageListenner( 14 | {required this.listennerName, 15 | required this.groupID, 16 | this.isAgreeJoin = false, 17 | required this.opUser, 18 | this.customData = '', 19 | this.recvOpt, 20 | this.opReason = ''}); 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/FriendInfoResultEntity.swift: -------------------------------------------------------------------------------- 1 | import ImSDK_Plus; 2 | 3 | 4 | // 朋友实体 5 | public class FriendInfoResultEntity : NSObject{ 6 | 7 | /** 8 | * ID 9 | */ 10 | var resultCode : Int32?; 11 | var resultInfo : String?; 12 | var relation : Int?; 13 | var friendInfo : [String: Any]?; 14 | 15 | 16 | override init() { 17 | } 18 | 19 | init(friendInfoResult : V2TIMFriendInfoResult) { 20 | super.init(); 21 | self.resultCode = friendInfoResult.resultCode; 22 | self.resultInfo = friendInfoResult.resultInfo; 23 | self.relation = friendInfoResult.relation.rawValue; 24 | self.friendInfo = V2FriendInfoEntity.getDict(info: friendInfoResult.friendInfo); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/utils/const.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: unnecessary_string_interpolations, constant_identifier_names 2 | 3 | class TencentIMSDKCONST { 4 | static const int Flutter = 1; 5 | static const int FlutterUIKit = 2; 6 | static const String FlutterUIKitPkg = "package:tim_ui_kit"; 7 | static const String FlutterUIKitPkgLatest = 8 | "package:tencent_cloud_chat_uikit"; 9 | static const String FlutterPlugin_32_pkg = 10 | "package:tim_ui_kit_calling_plugin"; 11 | static const String FlutterPlugin_33_pkg = "package:tim_ui_kit_push_plugin"; 12 | static final Map scenes = Map.from({ 13 | "${TencentIMSDKCONST.FlutterPlugin_32_pkg}": 32, 14 | "${TencentIMSDKCONST.FlutterPlugin_33_pkg}": 33, 15 | }); 16 | } 17 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_message_extension.dart: -------------------------------------------------------------------------------- 1 | /// V2TimMessageExtension 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimMessageExtension { 6 | String extensionKey = ""; 7 | String extensionValue = ""; 8 | 9 | V2TimMessageExtension({ 10 | required this.extensionKey, 11 | required this.extensionValue, 12 | }); 13 | 14 | V2TimMessageExtension.fromJson(Map json) { 15 | extensionKey = json["extensionKey"] ?? ""; 16 | extensionValue = json["extensionValue"] ?? ""; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data["extensionKey"] = extensionKey; 22 | data["extensionValue"] = extensionValue; 23 | return data; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_member_operation_result.dart: -------------------------------------------------------------------------------- 1 | /// V2TimGroupMemberOperationResult 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupMemberOperationResult { 6 | late String? memberID; 7 | late int? result; 8 | 9 | V2TimGroupMemberOperationResult({ 10 | this.memberID, 11 | this.result, 12 | }); 13 | 14 | V2TimGroupMemberOperationResult.fromJson(Map json) { 15 | memberID = json['memberID']; 16 | result = json['result']; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data['memberID'] = memberID; 22 | data['result'] = result; 23 | return data; 24 | } 25 | } 26 | 27 | // { 28 | // "memberID":"", 29 | // "result":0, 30 | // } 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/friend_type.dart: -------------------------------------------------------------------------------- 1 | /// 好友类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class FriendType { 8 | /// 单向好友 9 | /// 10 | static const V2TIM_FRIEND_TYPE_SINGLE = 1; 11 | 12 | /// 互为好友 13 | /// 14 | static const V2TIM_FRIEND_TYPE_BOTH = 2; 15 | } 16 | 17 | class FriendApplicationType { 18 | // 同意添加单向好友 19 | static const V2TIM_FRIEND_ACCEPT_AGREE = 0; 20 | // 同意并添加为双向好友 21 | static const V2TIM_FRIEND_ACCEPT_AGREE_AND_ADD = 1; 22 | 23 | // 拒绝好友时使用 24 | // 别人发给我的加好友请求 25 | static const V2TIM_FRIEND_APPLICATION_COME_IN = 1; 26 | //我发给别人的加好友请求 27 | static const V2TIM_FRIEND_APPLICATION_SEND_OUT = 2; 28 | // 别人发给我的和我发给别人的加好友请求。仅在拉取时有效。 29 | static const V2TIM_FRIEND_APPLICATION_BOTH = 3; 30 | } 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_topic_operation_result.dart: -------------------------------------------------------------------------------- 1 | /// V2TimTopicInfo 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimTopicOperationResult { 6 | int? errorCode; 7 | String? errorMessage; 8 | String? topicID; 9 | V2TimTopicOperationResult({ 10 | this.errorCode, 11 | this.errorMessage, 12 | this.topicID, 13 | }); 14 | 15 | V2TimTopicOperationResult.fromJson(Map json) { 16 | errorCode = json['errorCode']; 17 | errorMessage = json['errorMessage']; 18 | topicID = json['topicID']; 19 | } 20 | Map toJson() { 21 | final Map data = {}; 22 | data['errorCode'] = errorCode; 23 | data['errorMessage'] = errorMessage; 24 | data['topicID'] = topicID; 25 | return data; 26 | } 27 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/listener_type.dart: -------------------------------------------------------------------------------- 1 | /// 事件监听类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | class ListenerType { 6 | ///简单监听 7 | /// 8 | static const String simpleMsgListener = 'simpleMsgListener'; 9 | 10 | ///初始化监听 11 | /// 12 | static const String initSDKListener = 'initSDKListener'; 13 | 14 | ///群组监听 15 | /// 16 | static const String groupListener = 'groupListener'; 17 | 18 | ///高级消息监听 19 | /// 20 | static const String advancedMsgListener = 'advancedMsgListener'; 21 | 22 | ///会话监听 23 | /// 24 | static const String conversationListener = 'conversationListener'; 25 | 26 | ///好友关系链监听 27 | /// 28 | static const String friendListener = 'friendListener'; 29 | 30 | ///信令监听 31 | /// 32 | static const String signalingListener = 'signalingListener'; 33 | } 34 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_receive_rest_custom_data.dart: -------------------------------------------------------------------------------- 1 | /// V2TimReceiveRestCustomData 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimReceiveRestCustomData { 6 | late String groupID; 7 | late String customData; 8 | 9 | V2TimReceiveRestCustomData({ 10 | required this.groupID, 11 | required this.customData, 12 | }); 13 | 14 | V2TimReceiveRestCustomData.fromJson(Map json) { 15 | groupID = json['groupID']; 16 | customData = json['customData']; 17 | } 18 | 19 | Map toJson() { 20 | final Map data = {}; 21 | data['groupID'] = groupID; 22 | data['customData'] = customData; 23 | return data; 24 | } 25 | } 26 | 27 | // { 28 | // "groupID":"", 29 | // "customData":"" 30 | // } 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/test/mock/mock_data/v2_tim_message_manager_mock_data.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/enum/conversation_type.dart'; 2 | import 'package:tencent_im_sdk_plugin_web/src/enum/message_type.dart'; 3 | 4 | import '../utils.dart'; 5 | 6 | class V2TimMessageManagerMockData { 7 | static Map textMessageResultList = 8 | CommonUtils.buildParam([Message.textMessage]); 9 | } 10 | 11 | // 这个要和JS的字段对齐 12 | class Message { 13 | static Map textMessage = { 14 | "conversationType": ConversationTypeWeb.CONV_C2C, 15 | "type": MsgType.MSG_TEXT, 16 | "ID": "messageID_666", 17 | "from": "your heart", 18 | "nick": "星星与辰辰", 19 | "avatar": "https://profile.csdnimg.cn/D/9/1/2_weixin_44956861", 20 | "payload": {"text": "星辰通信中心最帅的男人!"} 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /example/lib/utils/toast.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:fluttertoast/fluttertoast.dart'; 3 | 4 | class Utils { 5 | static void toast(String msg) { 6 | Fluttertoast.showToast( 7 | msg: msg, 8 | toastLength: Toast.LENGTH_SHORT, 9 | gravity: ToastGravity.CENTER, 10 | timeInSecForIosWeb: 1, 11 | textColor: Colors.white, 12 | fontSize: 16.0, 13 | backgroundColor: Colors.black, 14 | ); 15 | } 16 | 17 | static void toastError(int code, String desc) { 18 | Fluttertoast.showToast( 19 | msg: "code:$code,desc:$desc", 20 | toastLength: Toast.LENGTH_SHORT, 21 | gravity: ToastGravity.CENTER, 22 | timeInSecForIosWeb: 1, 23 | textColor: Colors.white, 24 | fontSize: 16.0, 25 | backgroundColor: Colors.black, 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_message_status.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/message_status.dart'; 2 | 3 | class MessageStatusWeb { 4 | static int convertMessageStatus(dynamic message) { 5 | final String status = message["status"]; 6 | final bool isRevoked = message["isRevoked"]; 7 | final bool isDeleted = message["isDeleted"]; 8 | 9 | if (isDeleted) { 10 | return MessageStatus.V2TIM_MSG_STATUS_HAS_DELETED; 11 | } 12 | 13 | if (isRevoked) { 14 | return MessageStatus.V2TIM_MSG_STATUS_LOCAL_REVOKED; 15 | } 16 | 17 | if (status == 'success') { 18 | return MessageStatus.V2TIM_MSG_STATUS_SEND_SUCC; 19 | } 20 | 21 | if (status == 'fail') { 22 | return MessageStatus.V2TIM_MSG_STATUS_SEND_FAIL; 23 | } 24 | 25 | return 0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_set_group_member_info.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 2 | 3 | class SetGroupMemberInfo { 4 | static Map formateParams(Map params) { 5 | final Map customInfo = params['customInfo'] ?? {}; 6 | final formatedCustomInfo = customInfo.keys 7 | .map((e) => mapToJSObj({"key": e, "value": customInfo[e]})); 8 | return { 9 | "nameCardParams": mapToJSObj({ 10 | "groupID": params['groupID'], 11 | "userID": params['userID'], 12 | "nameCard": params['nameCard'], 13 | }), 14 | "customInfoParams": mapToJSObj({ 15 | "groupID": params['groupID'], 16 | "userID": params['userID'], 17 | "memberCustomField": formatedCustomInfo.toList() 18 | }) 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_user_info.dart: -------------------------------------------------------------------------------- 1 | /// V2TimUserInfo 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimUserInfo { 6 | late String userID; 7 | late String? nickName; 8 | late String? faceUrl; 9 | 10 | V2TimUserInfo({ 11 | required this.userID, 12 | this.nickName, 13 | this.faceUrl, 14 | }); 15 | 16 | V2TimUserInfo.fromJson(Map json) { 17 | userID = json['userID']; 18 | nickName = json['nickName']; 19 | faceUrl = json['faceUrl']; 20 | } 21 | 22 | Map toJson() { 23 | final Map data = {}; 24 | data['userID'] = userID; 25 | data['nickName'] = nickName; 26 | data['faceUrl'] = faceUrl; 27 | return data; 28 | } 29 | } 30 | 31 | // { 32 | // "userID":"", 33 | // "nickName":"", 34 | // "faceUrl":"" 35 | // } 36 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_user_status.dart: -------------------------------------------------------------------------------- 1 | /// V2TimUserStatus 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimUserStatus { 6 | String? userID; 7 | int? statusType; 8 | String? customStatus; 9 | 10 | V2TimUserStatus({ 11 | this.userID, 12 | this.statusType, 13 | this.customStatus, 14 | }); 15 | 16 | V2TimUserStatus.fromJson(Map json) { 17 | userID = json['userID']; 18 | statusType = json['statusType']; 19 | customStatus = json['customStatus']; 20 | } 21 | 22 | Map toJson() { 23 | final Map data = {}; 24 | data['userId'] = userID; 25 | data['statusType'] = statusType; 26 | data['customStatus'] = customStatus; 27 | return data; 28 | } 29 | } 30 | 31 | // { 32 | // "userId":"", 33 | // "role":"" 34 | // } 35 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_friend_list.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_web/src/models/v2_tim_profile.dart'; 2 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 3 | 4 | class FriendList { 5 | static List> formatedFriendListRes(friendList) { 6 | final List> formatedList = List.empty(growable: true); 7 | friendList.forEach((listItem) { 8 | final item = jsToMap(listItem); 9 | final profile = jsToMap(item['profile']); 10 | final formatedItem = { 11 | 'userID': item['userID'], 12 | 'friendGroups': item['groupList'], 13 | 'friendRemark': item['remark'], 14 | 'userProfile': V2TimProfile.userFullInfoExtract(profile), 15 | }; 16 | formatedList.add(formatedItem); 17 | }); 18 | 19 | return formatedList; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /example/windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | record_windows 7 | ) 8 | 9 | list(APPEND FLUTTER_FFI_PLUGIN_LIST 10 | ) 11 | 12 | set(PLUGIN_BUNDLED_LIBRARIES) 13 | 14 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 15 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 16 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 17 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 19 | endforeach(plugin) 20 | 21 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) 22 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) 23 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) 24 | endforeach(ffi_plugin) 25 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/TencentImSDKPluginOC.m: -------------------------------------------------------------------------------- 1 | // HelloPlugin.m 2 | // 3 | // Created by xingchenhe on 2020/11/19 4 | // Copyright (c) 2020年 Tencent. All rights reserved. 5 | // 6 | #import "TencentImSDKPluginOC.h" 7 | #if __has_include() 8 | #import 9 | #else 10 | // Support project import fallback if the generated compatibility header 11 | // is not copied when this plugin is created as a library. 12 | // https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 13 | #import "tencent_im_sdk_plugin-Swift.h" 14 | #endif 15 | /* 16 | HelloPlugin 17 | */ 18 | @implementation TencentImSDKPluginOC 19 | + (void)registerWithRegistrar:(NSObject*)registrar { 20 | [TencentImSDKPlugin registerWithRegistrar:registrar]; 21 | } 22 | @end 23 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_member_leave.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info.dart'; 2 | 3 | /// V2TimMemberLeave 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimMemberLeave { 8 | late String groupID; 9 | late V2TimGroupMemberInfo member; 10 | 11 | V2TimMemberLeave({ 12 | required this.groupID, 13 | required this.member, 14 | }); 15 | 16 | V2TimMemberLeave.fromJson(Map json) { 17 | groupID = json['groupID']; 18 | member = V2TimGroupMemberInfo.fromJson(json['member']); 19 | } 20 | 21 | Map toJson() { 22 | final Map data = {}; 23 | data['groupID'] = groupID; 24 | data['member'] = member.toJson(); 25 | return data; 26 | } 27 | } 28 | 29 | // { 30 | // "groupID":"", 31 | // "member":{} 32 | // } 33 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | # IM SDK Flutter API Example 2 | 3 | 为帮助您更好的理解IM SDK的各API,[我们提供了API Example](https://github.com/TencentCloud/TIMSDK/tree/master/Flutter/IMSDK/im-flutter-plugin/tencent_im_sdk_plugin/example),演示各个API的调用及监听的触发。 4 | 5 | 如下命令进入API Example: 6 | 7 | ```shell 8 | #clone 代码 9 | git clone https://github.com/TencentCloud/TIMSDK.git 10 | 11 | #进入flutter的demo目录 12 | cd TIMSDK/Flutter/IMSDK/im-flutter-plugin/tencent_im_sdk_plugin/example 13 | 14 | #安装依赖 15 | flutter pub get 16 | ``` 17 | 18 | 运行项目后,先在右上角录入App信息及测试用户信息。并在首页第一个卡片点击初始化和登录按钮,完成登录。 19 | 20 | 完成初始化和登录后,可在首页测试各项API及监听回调。 21 | 22 | ![wecom-temp-430533-d291e58410e1b8b8bfe355cc816abc43](https://tuikit-1251787278.cos.ap-guangzhou.myqcloud.com/wecom-temp-430533-d291e58410e1b8b8bfe355cc816abc43.jpg) 23 | 24 | 具体每个API的调用代码,可在 `lib/im` 文件夹内找到,您可参考其实现您的业务需求。 25 | 26 | ![20220705201305](https://tuikit-1251787278.cos.ap-guangzhou.myqcloud.com/20220705201305.png) -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_dismissed.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info.dart'; 2 | 3 | /// V2TimGroupDismissed 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimGroupDismissed { 8 | late String groupID; 9 | late V2TimGroupMemberInfo opUser; 10 | 11 | V2TimGroupDismissed({ 12 | required this.groupID, 13 | required this.opUser, 14 | }); 15 | 16 | V2TimGroupDismissed.fromJson(Map json) { 17 | groupID = json['groupID']; 18 | opUser = V2TimGroupMemberInfo.fromJson(json['opUser']); 19 | } 20 | 21 | Map toJson() { 22 | final Map data = {}; 23 | data['groupID'] = groupID; 24 | data['opUser'] = opUser.toJson(); 25 | return data; 26 | } 27 | } 28 | // { 29 | // "groupID":"", 30 | // "opUser":{} 31 | // } 32 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_recycled.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info.dart'; 2 | 3 | /// V2TimGroupRecycled 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimGroupRecycled { 8 | late String groupID; 9 | late V2TimGroupMemberInfo opUser; 10 | 11 | V2TimGroupRecycled({ 12 | required this.groupID, 13 | required this.opUser, 14 | }); 15 | 16 | V2TimGroupRecycled.fromJson(Map json) { 17 | groupID = json['groupID']; 18 | opUser = V2TimGroupMemberInfo.fromJson(json['opUser']); 19 | } 20 | 21 | Map toJson() { 22 | final Map data = {}; 23 | data['groupID'] = groupID; 24 | data['opUser'] = opUser.toJson(); 25 | return data; 26 | } 27 | } 28 | 29 | // { 30 | // "groupID":"", 31 | // "opUser":{} 32 | // } 33 | -------------------------------------------------------------------------------- /example/lib/im/logout.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:tencent_im_sdk_plugin/tencent_im_sdk_plugin.dart'; 3 | import 'package:example/i18n/i18n_utils.dart'; 4 | 5 | class Logout extends StatefulWidget { 6 | @override 7 | State createState() => LogoutState(); 8 | } 9 | 10 | class LogoutState extends State { 11 | logout() async { 12 | TencentImSDKPlugin.v2TIMManager.logout(); 13 | } 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | return Container( 18 | child: Column( 19 | children: [ 20 | new Row( 21 | children: [ 22 | Expanded( 23 | child: ElevatedButton( 24 | onPressed: logout, 25 | child: Text(imt("登出")), 26 | ), 27 | ) 28 | ], 29 | ), 30 | ], 31 | ), 32 | ); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | /example/build 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | **/doc/api/ 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | build/ 33 | 34 | 35 | # Web related 36 | lib/generated_plugin_registrant.dart 37 | 38 | # Symbolication related 39 | app.*.symbols 40 | 41 | # Obfuscation related 42 | app.*.map.json 43 | 44 | # Exceptions to above rules. 45 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 46 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_friend_group.dart: -------------------------------------------------------------------------------- 1 | /// V2TimFriendGroup 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimFriendGroup { 6 | late String? name; 7 | late int? friendCount; 8 | late List? friendIDList; 9 | 10 | V2TimFriendGroup({ 11 | this.name, 12 | this.friendCount, 13 | this.friendIDList, 14 | }); 15 | 16 | V2TimFriendGroup.fromJson(Map json) { 17 | name = json['name']; 18 | friendCount = json['friendCount']; 19 | friendIDList = json['friendIDList'].cast(); 20 | } 21 | 22 | Map toJson() { 23 | final Map data = {}; 24 | data['name'] = name; 25 | data['friendCount'] = friendCount; 26 | data['friendIDList'] = friendIDList; 27 | return data; 28 | } 29 | } 30 | // { 31 | // "name":"", 32 | // "friendCount":0, 33 | // "friendIDList":[""] 34 | // } 35 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Android Studio will place build artifacts here 44 | /android/app/debug 45 | /android/app/profile 46 | /android/app/release 47 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_conversation_operation_result.dart: -------------------------------------------------------------------------------- 1 | 2 | /// V2TimConversationOperationResult 3 | /// 4 | /// {@category Models} 5 | /// 6 | class V2TimConversationOperationResult { 7 | String? conversationID; 8 | int? resultCode ; 9 | String? resultInfo; 10 | 11 | V2TimConversationOperationResult({ 12 | this.conversationID, 13 | this.resultCode, 14 | this.resultInfo, 15 | }); 16 | 17 | V2TimConversationOperationResult.fromJson(Map json) { 18 | conversationID = json['conversationID']; 19 | resultCode = json['resultCode']; 20 | resultInfo = json['resultInfo']; 21 | } 22 | 23 | Map toJson() { 24 | final Map data = {}; 25 | data['conversationID'] = conversationID; 26 | data['resultCode'] = resultCode; 27 | data['resultInfo'] = resultInfo; 28 | 29 | return data; 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_change_info.dart: -------------------------------------------------------------------------------- 1 | /// V2TimGroupChangeInfo 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupChangeInfo { 6 | int? type; 7 | String? value; 8 | String? key; 9 | bool? boolValue; 10 | 11 | V2TimGroupChangeInfo({ 12 | required this.type, 13 | this.value, 14 | this.key, 15 | this.boolValue, 16 | }); 17 | 18 | V2TimGroupChangeInfo.fromJson(Map json) { 19 | type = json['type']; 20 | value = json['value']; 21 | key = json['key']; 22 | boolValue = json['boolValue']; 23 | } 24 | 25 | Map toJson() { 26 | final Map data = {}; 27 | data['type'] = type; 28 | data['value'] = value; 29 | data['key'] = key; 30 | data['boolValue'] = boolValue; 31 | return data; 32 | } 33 | } 34 | 35 | // { 36 | // "type":0, 37 | // "value":"", 38 | // "key":"" 39 | // } 40 | -------------------------------------------------------------------------------- /example/windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_friend_operation_result.dart: -------------------------------------------------------------------------------- 1 | /// V2TimFriendOperationResult 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimFriendOperationResult { 6 | late String? userID; 7 | late int? resultCode; 8 | late String? resultInfo; 9 | 10 | V2TimFriendOperationResult({ 11 | required this.userID, 12 | this.resultCode, 13 | this.resultInfo, 14 | }); 15 | 16 | V2TimFriendOperationResult.fromJson(Map json) { 17 | userID = json['userID']; 18 | resultCode = json['resultCode']; 19 | resultInfo = json['resultInfo']; 20 | } 21 | 22 | Map toJson() { 23 | final Map data = {}; 24 | data['userID'] = userID; 25 | data['resultCode'] = resultCode; 26 | data['resultInfo'] = resultInfo; 27 | return data; 28 | } 29 | } 30 | // { 31 | // "userID":"", 32 | // "resultCode":0, 33 | // "resultInfo":"" 34 | // } 35 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_search_param.dart: -------------------------------------------------------------------------------- 1 | /// V2TimGroupSearchParam 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupSearchParam { 6 | late List keywordList; 7 | bool isSearchGroupID = true; 8 | bool isSearchGroupName = true; 9 | 10 | V2TimGroupSearchParam({ 11 | required this.keywordList, 12 | this.isSearchGroupID = true, 13 | this.isSearchGroupName = true, 14 | }); 15 | 16 | V2TimGroupSearchParam.fromJson(Map json) { 17 | keywordList = json['keywordList']; 18 | isSearchGroupID = json['isSearchGroupID']; 19 | isSearchGroupName = json['isSearchGroupName']; 20 | } 21 | 22 | Map toJson() { 23 | final Map data = {}; 24 | data['keywordList'] = keywordList; 25 | data['isSearchGroupID'] = isSearchGroupID; 26 | data['isSearchGroupName'] = isSearchGroupName; 27 | return data; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_recv_c2c_text_message.dart: -------------------------------------------------------------------------------- 1 | import 'v2_tim_user_info.dart'; 2 | 3 | /// V2TimRecvC2cTextMessage 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimRecvC2cTextMessage { 8 | late String msgID; 9 | late V2TimUserInfo sender; 10 | late String? text; 11 | 12 | V2TimRecvC2cTextMessage({ 13 | required this.msgID, 14 | required this.sender, 15 | this.text, 16 | }); 17 | 18 | V2TimRecvC2cTextMessage.fromJson(Map json) { 19 | msgID = json['msgID']; 20 | sender = V2TimUserInfo.fromJson(json['sender']); 21 | text = json['text']; 22 | } 23 | 24 | Map toJson() { 25 | final Map data = {}; 26 | data['msgID'] = msgID; 27 | data['sender'] = sender.toJson(); 28 | data['text'] = text; 29 | return data; 30 | } 31 | } 32 | // { 33 | // "msgID":"", 34 | // "sender":{}, 35 | // "text":"" 36 | // } 37 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_msg_create_info_result.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message.dart'; 2 | 3 | 4 | /// V2TimGroupMemberInfoResult 5 | /// 6 | /// {@category Models} 7 | /// 8 | 9 | class V2TimMsgCreateInfoResult { 10 | late String? id; 11 | late V2TimMessage? messageInfo; 12 | 13 | V2TimMsgCreateInfoResult({ 14 | this.id, 15 | this.messageInfo, 16 | }); 17 | 18 | V2TimMsgCreateInfoResult.fromJson(Map json) { 19 | id = json['id']; 20 | messageInfo = V2TimMessage.fromJson(json['messageInfo']); 21 | } 22 | 23 | Map toJson() { 24 | final Map data = {}; 25 | data['id'] = id; 26 | if (messageInfo != null) { 27 | data['memberInfoList'] = messageInfo!.toJson(); 28 | } 29 | return data; 30 | } 31 | } 32 | // { 33 | // "nextSeq":0, 34 | // "memberInfoList":[{}] 35 | // } 36 | -------------------------------------------------------------------------------- /example/lib/entity/api_data_entity.dart: -------------------------------------------------------------------------------- 1 | import 'package:example/entity/api_item_entity.dart'; 2 | 3 | class ApiData { 4 | late String apiManager; 5 | late String managerName; 6 | late List apis; 7 | 8 | ApiData({ 9 | required this.apiManager, 10 | required this.managerName, 11 | required this.apis, 12 | }); 13 | 14 | ApiData.fromJson(Map json) { 15 | try { 16 | apiManager = json['apiManager']; 17 | managerName = json['managerName']; 18 | apis = []; 19 | json['apis'].forEach((v) { 20 | apis.add(ApiItem.fromJson(v)); 21 | }); 22 | } catch (err) { 23 | print(err); 24 | } 25 | } 26 | 27 | Map toJson() { 28 | final Map data = Map.from({}); 29 | data['apiManager'] = apiManager; 30 | data['managerName'] = managerName; 31 | data['apis'] = apis.map((v) => v.toJson()).toList(); 32 | return data; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2GroupApplicationEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 自定义群申请实体 5 | class V2GroupApplicationEntity: V2TIMGroupApplication { 6 | 7 | /// 根据对象获得字典对象 8 | public static func getDict(info: V2TIMGroupApplication) -> [String: Any] { 9 | var result: [String: Any] = [:]; 10 | result["groupID"] = info.groupID; 11 | result["fromUser"] = info.fromUser; 12 | result["fromUserNickName"] = info.fromUserNickName; 13 | result["fromUserFaceUrl"] = info.fromUserFaceUrl; 14 | result["toUser"] = info.toUser; 15 | result["addTime"] = info.addTime; 16 | result["requestMsg"] = info.requestMsg; 17 | result["handledMsg"] = info.handledMsg; 18 | result["type"] = info.getType.rawValue; 19 | result["handleStatus"] = info.handleStatus.rawValue; 20 | result["handleResult"] = info.handleResult.rawValue; 21 | return result; 22 | } 23 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_message_change_info.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message.dart'; 2 | 3 | /// V2TimMessageChangeInfo 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimMessageChangeInfo { 8 | int? code; 9 | String? desc; 10 | V2TimMessage? message; 11 | 12 | V2TimMessageChangeInfo({ 13 | this.code, 14 | this.desc, 15 | this.message, 16 | }); 17 | 18 | V2TimMessageChangeInfo.fromJson(Map json) { 19 | code = json["code"]; 20 | desc = json["desc"]; 21 | if(json["message"]!=null){ 22 | message = V2TimMessage.fromJson(json["message"]); 23 | } 24 | } 25 | 26 | Map toJson() { 27 | final Map data = {}; 28 | data["code"] = code; 29 | data["desc"] = desc; 30 | if(message!=null){ 31 | data["message"] = message!.toJson(); 32 | } 33 | return data; 34 | } 35 | } -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_text_elem.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_elem.dart'; 4 | 5 | /// V2TimTextElem 6 | /// 7 | /// {@category Models} 8 | class V2TimTextElem extends V2TIMElem { 9 | late String? text; 10 | 11 | V2TimTextElem({ 12 | this.text, 13 | }); 14 | 15 | V2TimTextElem.fromJson(Map json) { 16 | text = json['text']; 17 | if (json['nextElem'] != null) { 18 | nextElem = Map.from(json['nextElem']); 19 | } 20 | } 21 | 22 | Map toJson() { 23 | final Map data = {}; 24 | data['text'] = text; 25 | if (nextElem != null) { 26 | data['nextElem'] = nextElem; 27 | } 28 | return data; 29 | } 30 | 31 | formatJson(jsonSrc) { 32 | return json.decode(json.encode(jsonSrc)); 33 | } 34 | } 35 | 36 | // { 37 | // "text":"" 38 | // } 39 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_attribute_changed.dart: -------------------------------------------------------------------------------- 1 | /// V2TimGroupAttributeChanged 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimGroupAttributeChanged { 6 | late String groupID; 7 | late Map groupAttributeMap; 8 | 9 | V2TimGroupAttributeChanged({ 10 | required this.groupID, 11 | required this.groupAttributeMap, 12 | }); 13 | 14 | V2TimGroupAttributeChanged.fromJson(Map json) { 15 | groupID = json['groupID']; 16 | groupAttributeMap = json['groupAttributeMap'] == null 17 | ? {} 18 | : Map.from(json['groupAttributeMap']); 19 | } 20 | 21 | Map toJson() { 22 | final Map data = {}; 23 | data['groupID'] = groupID; 24 | data['groupAttributeMap'] = groupAttributeMap; 25 | return data; 26 | } 27 | } 28 | // { 29 | // "groupID":"", 30 | // "groupAttributeMap":{} 31 | // } 32 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_face_elem.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_elem.dart'; 2 | 3 | /// V2TimFaceElem 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimFaceElem extends V2TIMElem { 8 | late int? index; 9 | late String? data; 10 | 11 | V2TimFaceElem({ 12 | this.index, 13 | this.data, 14 | }); 15 | 16 | V2TimFaceElem.fromJson(Map json) { 17 | index = json['index']; 18 | data = json['data']; 19 | if (json['nextElem'] != null) { 20 | nextElem = Map.from(json['nextElem']); 21 | } 22 | } 23 | 24 | Map toJson() { 25 | final Map data = {}; 26 | data['index'] = index; 27 | data['data'] = this.data; 28 | if (nextElem != null) { 29 | data['nextElem'] = nextElem; 30 | } 31 | return data; 32 | } 33 | } 34 | // { 35 | // "index":1, 36 | // "data":"" 37 | // } 38 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 0.0.1 2 | 3 | * 抽象组件能力。 4 | 5 | ## 0.0.2 6 | 7 | * 更新README.md 文件 8 | 9 | ## 0.0.3 10 | 11 | * 添加发送消息相关接口 12 | 13 | ## 0.0.4 14 | 15 | * 添加checkFriend接口 16 | 17 | ## 0.0.5 18 | 19 | * 添加markAllMessageAsRead接口 20 | 21 | ## 0.0.6 22 | 23 | * 支持事件回调多次监听 24 | 25 | ## 0.0.7 26 | 27 | * 支持十万人群 28 | * 消息发送拆成create和send 29 | * 废弃部分接口 30 | 31 | ## 0.0.8 32 | * listener 改为异步 33 | 34 | ## 0.0.9 35 | * 消息进度事件增加发送中消息uuid 36 | 37 | ## 0.1.0 38 | * 初始化增加listener参数 39 | 40 | ## 0.1.1 41 | * 更新搜索参数 42 | 43 | ## 0.1.2 44 | * 更新群成员参数 45 | 46 | ## 0.1.3 47 | * 更新interface 48 | 49 | ## 0.1.4 50 | * 新增接口 51 | ## 0.1.5 52 | * fix error 53 | ## 0.1.6 54 | * 修改日志名字 55 | 56 | ## 0.1.7 57 | * 修改grouplistener 58 | 59 | ## 0.1.8 60 | * 修改初始刷SDK的传参 61 | 62 | ## 0.2.9 63 | * 升级SDK 64 | 65 | ## 0.3.1 66 | * web support 67 | ## 0.3.1 68 | * web bug fixed 69 | 70 | ## 0.3.4 71 | * web bug fixed 72 | 73 | ## 0.3.7 74 | * add some models 75 | 76 | ## 0.3.7 77 | * bug fix 78 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/lib/enum/utils.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role.dart'; 2 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role_enum.dart'; 3 | 4 | class EnumUtils { 5 | static int convertGroupMemberRoleTypeEnum(GroupMemberRoleTypeEnum role) { 6 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_ROLE_ADMIN) { 7 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_ROLE_ADMIN; 8 | } 9 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_ROLE_MEMBER) { 10 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_ROLE_MEMBER; 11 | } 12 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_ROLE_OWNER) { 13 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_ROLE_OWNER; 14 | } 15 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_UNDEFINED) { 16 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_UNDEFINED; 17 | } 18 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_UNDEFINED; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_recv_c2c_custom_message.dart: -------------------------------------------------------------------------------- 1 | import 'v2_tim_user_info.dart'; 2 | 3 | /// V2TimRecvC2cCustomMessage 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimRecvC2cCustomMessage { 8 | late String msgID; 9 | late V2TimUserInfo sender; 10 | late String? customData; 11 | 12 | V2TimRecvC2cCustomMessage({ 13 | required this.msgID, 14 | required this.sender, 15 | this.customData, 16 | }); 17 | 18 | V2TimRecvC2cCustomMessage.fromJson(Map json) { 19 | msgID = json['msgID']; 20 | sender = V2TimUserInfo.fromJson(json['sender']); 21 | customData = json['customData']; 22 | } 23 | 24 | Map toJson() { 25 | final Map data = {}; 26 | data['msgID'] = msgID; 27 | data['sender'] = sender.toJson(); 28 | data['customData'] = customData; 29 | return data; 30 | } 31 | } 32 | // { 33 | // "msgID":"", 34 | // "sender":{}, 35 | // "customData":"" 36 | // } 37 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_topic_info_result.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_topic_info.dart'; 2 | 3 | /// V2TIMTopicInfoResult 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimTopicInfoResult { 8 | int? errorCode; 9 | String? errorMessage; 10 | V2TimTopicInfo? topicInfo; 11 | 12 | V2TimTopicInfoResult({ 13 | this.errorCode, 14 | this.errorMessage, 15 | this.topicInfo, 16 | }); 17 | 18 | V2TimTopicInfoResult.fromJson(Map json) { 19 | errorCode = json['errorCode']; 20 | errorMessage = json['errorMessage']; 21 | if (json['topicInfo'] != null) { 22 | topicInfo = V2TimTopicInfo.fromJson(json['topicInfo']); 23 | } 24 | } 25 | Map toJson() { 26 | final Map data = {}; 27 | data["errorCode"] = errorCode; 28 | data["errorMessage"] = errorMessage; 29 | data["topicInfo"] = topicInfo?.toJson(); 30 | return data; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/utils.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role.dart'; 2 | import 'package:tencent_im_sdk_plugin_platform_interface/enum/group_member_role_enum.dart'; 3 | 4 | class EnumUtils { 5 | static int convertGroupMemberRoleTypeEnum(GroupMemberRoleTypeEnum role) { 6 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_ROLE_ADMIN) { 7 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_ROLE_ADMIN; 8 | } 9 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_ROLE_MEMBER) { 10 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_ROLE_MEMBER; 11 | } 12 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_ROLE_OWNER) { 13 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_ROLE_OWNER; 14 | } 15 | if (role == GroupMemberRoleTypeEnum.V2TIM_GROUP_MEMBER_UNDEFINED) { 16 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_UNDEFINED; 17 | } 18 | return GroupMemberRoleType.V2TIM_GROUP_MEMBER_UNDEFINED; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_desktop/lib/enum/tim_group_modify_flag.dart: -------------------------------------------------------------------------------- 1 | class CGroupModifyFlag { 2 | static const kTIMGroupModifyInfoFlag_None = 0x00; 3 | static const kTIMGroupModifyInfoFlag_Name = 0x01; // 修改群组名称 4 | static const kTIMGroupModifyInfoFlag_Notification = 0x01 << 1; // 修改群公告 5 | static const kTIMGroupModifyInfoFlag_Introduction = 0x01 << 2; // 修改群简介 6 | static const kTIMGroupModifyInfoFlag_FaceUrl = 0x01 << 3; // 修改群头像URL 7 | static const kTIMGroupModifyInfoFlag_AddOption = 0x01 << 4; // 修改群组添加选项 8 | static const kTIMGroupModifyInfoFlag_MaxMmeberNum = 0x01 << 5; // 修改群最大成员数 9 | static const kTIMGroupModifyInfoFlag_Visible = 0x01 << 6; // 修改群是否可见 10 | static const kTIMGroupModifyInfoFlag_Searchable = 0x01 << 7; // 修改群是否允许被搜索 11 | static const kTIMGroupModifyInfoFlag_ShutupAll = 0x01 << 8; // 修改群是否全体禁言 12 | static const kTIMGroupModifyInfoFlag_Custom = 0x01 << 9; // 修改群自定义信息 13 | static const kTIMGroupTopicModifyInfoFlag_CustomString = 14 | 0x01 << 11; // 话题自定义字段 15 | static const kTIMGroupModifyInfoFlag_Owner = 0x01 << 31; // 修改群主 16 | } 17 | -------------------------------------------------------------------------------- /example/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 11.0 25 | CFBundleShortVersionString 26 | $(FLUTTER_BUILD_NAME) 27 | CFBundleVersion 28 | $(FLUTTER_BUILD_NUMBER) 29 | 30 | 31 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: tencent_im_sdk_plugin_web 2 | description: The web implementation of tencent_im_sdk_plugin. 3 | version: 0.3.6 4 | 5 | environment: 6 | sdk: ">=2.12.0 <3.0.0" 7 | flutter: "^2.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | flutter_web_plugins: 13 | sdk: flutter 14 | mime_type: ^1.0.0 15 | 16 | tencent_im_sdk_plugin_platform_interface: ^0.3.10 17 | # tencent_im_sdk_plugin_platform_interface: 18 | # path: ../tencent_im_sdk_plugin_platform_interface 19 | js: ^0.6.2 20 | path: ^1.8.0 21 | uuid: ^3.0.5 22 | 23 | dev_dependencies: 24 | flutter_test: 25 | sdk: flutter 26 | flutter_lints: ^1.0.0 27 | 28 | # For information on the generic Dart part of this file, see the 29 | # following page: https://dart.dev/tools/pub/pubspec 30 | 31 | # The following section is specific to Flutter. 32 | flutter: 33 | plugin: 34 | implements: tencent_im_sdk_plugin 35 | platforms: 36 | web: 37 | pluginClass: TencentImSDKPluginWeb 38 | fileName: tencent_im_sdk_plugin_web.dart 39 | -------------------------------------------------------------------------------- /example/web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flutter_web", 3 | "short_name": "flutter_web", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/android/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | tencent_im_sdk_plugin 4 | Project android_ created by Buildship. 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.buildship.core.gradleprojectbuilder 15 | 16 | 17 | 18 | 19 | 20 | org.eclipse.jdt.core.javanature 21 | org.eclipse.buildship.core.gradleprojectnature 22 | 23 | 24 | 25 | 1666146126801 26 | 27 | 30 28 | 29 | org.eclipse.core.resources.regexFilterMatcher 30 | node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/models/v2_tim_pin_conversation.dart: -------------------------------------------------------------------------------- 1 | // ignore: unused_import 2 | import 'package:js/js.dart'; 3 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 4 | 5 | // 需要传递object时可以直接使用这种形式创建 对应博客:https://stackoverflow.com/questions/33394867/passing-dart-objects-to-js-functions-in-js-interop 6 | // @anonymous 7 | // @JS() 8 | // class PinConversationParams { 9 | // external String get conversationID; 10 | // external set conversationID(String value); 11 | 12 | // external int get count; 13 | // external set count(int value); 14 | // } 15 | 16 | class PinConversation { 17 | late String conversationID; 18 | late int isPinned; 19 | 20 | PinConversation( 21 | this.conversationID, 22 | this.isPinned, 23 | ); 24 | 25 | static formateParams(Map data) { 26 | Map params = {}; 27 | params["conversationID"] = data["conversationID"]; 28 | params["isPinned"] = data["isPinned"]; 29 | 30 | return mapToJSObj(params); 31 | } 32 | 33 | static formateResult() {} 34 | } 35 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin/ios/Classes/entity/V2ConversationResultEntity.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import ImSDK_Plus 3 | 4 | /// 自定义会话结果实体 5 | class V2ConversationResultEntity: NSObject { 6 | /// 下一次分页拉取的游标 7 | var nextSeq: String?; 8 | 9 | /// 是否拉取完毕 10 | var finished: Bool?; 11 | 12 | /// 会话列表 13 | var conversationList: [[String: Any]]?; 14 | 15 | required public override init() { 16 | } 17 | 18 | func getDict() -> [String: Any] { 19 | var result: [String: Any] = [:] 20 | 21 | result["nextSeq"] = nextSeq 22 | result["isFinished"] = self.finished 23 | result["conversationList"] = self.conversationList 24 | 25 | return result 26 | } 27 | 28 | init(conversations: [V2TIMConversation], nextSeq: String, finished: Bool) { 29 | super.init(); 30 | self.nextSeq = nextSeq; 31 | self.finished = finished; 32 | conversationList = []; 33 | for item in conversations { 34 | conversationList!.append(V2ConversationEntity.getDict(info: item)); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /example/windows/runner/flutter_window.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_FLUTTER_WINDOW_H_ 2 | #define RUNNER_FLUTTER_WINDOW_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include "win32_window.h" 10 | 11 | // A window that does nothing but host a Flutter view. 12 | class FlutterWindow : public Win32Window { 13 | public: 14 | // Creates a new FlutterWindow hosting a Flutter view running |project|. 15 | explicit FlutterWindow(const flutter::DartProject& project); 16 | virtual ~FlutterWindow(); 17 | 18 | protected: 19 | // Win32Window: 20 | bool OnCreate() override; 21 | void OnDestroy() override; 22 | LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, 23 | LPARAM const lparam) noexcept override; 24 | 25 | private: 26 | // The project to run. 27 | flutter::DartProject project_; 28 | 29 | // The Flutter instance hosted by this window. 30 | std::unique_ptr flutter_controller_; 31 | }; 32 | 33 | #endif // RUNNER_FLUTTER_WINDOW_H_ 34 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/message_elem_type.dart: -------------------------------------------------------------------------------- 1 | /// 消息类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class MessageElemType { 8 | ///没有元素 9 | /// 10 | static const int V2TIM_ELEM_TYPE_NONE = 0; 11 | 12 | ///文本消息 13 | /// 14 | static const int V2TIM_ELEM_TYPE_TEXT = 1; 15 | 16 | ///自定义消息 17 | /// 18 | static const int V2TIM_ELEM_TYPE_CUSTOM = 2; 19 | 20 | ///图片消息 21 | /// 22 | static const int V2TIM_ELEM_TYPE_IMAGE = 3; 23 | 24 | ///语音消息 25 | /// 26 | static const int V2TIM_ELEM_TYPE_SOUND = 4; 27 | 28 | ///视频消息 29 | /// 30 | static const int V2TIM_ELEM_TYPE_VIDEO = 5; 31 | 32 | ///文件消息 33 | /// 34 | static const int V2TIM_ELEM_TYPE_FILE = 6; 35 | 36 | ///地理位置消息 37 | /// 38 | static const int V2TIM_ELEM_TYPE_LOCATION = 7; 39 | 40 | ///表情消息 41 | /// 42 | static const int V2TIM_ELEM_TYPE_FACE = 8; 43 | 44 | ///群 Tips 消息(存消息列表) 45 | /// 46 | static const int V2TIM_ELEM_TYPE_GROUP_TIPS = 9; 47 | 48 | // 合并消息 49 | static const int V2TIM_ELEM_TYPE_MERGER = 10; 50 | } 51 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_web/lib/src/enum/group_tips_type.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: non_constant_identifier_names 2 | 3 | import 'package:js/js.dart'; 4 | import 'package:tencent_im_sdk_plugin_web/src/utils/utils.dart'; 5 | 6 | @JS("TIM") 7 | class GroupTipsEnum { 8 | external static dynamic TYPES; // 这个是用作枚举的 9 | } 10 | 11 | class GroupTips { 12 | static int GRP_TIP_MBR_JOIN = 13 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_MBR_JOIN']; 14 | static int GRP_TIP_MBR_QUIT = 15 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_MBR_QUIT']; 16 | static int GRP_TIP_MBR_KICKED_OUT = 17 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_MBR_KICKED_OUT']; 18 | static int GRP_TIP_MBR_SET_ADMIN = 19 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_MBR_SET_ADMIN']; 20 | static int GRP_TIP_MBR_CANCELED_ADMIN = 21 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_MBR_CANCELED_ADMIN']; 22 | static int GRP_TIP_GRP_PROFILE_UPDATED = 23 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_GRP_PROFILE_UPDATED']; 24 | static int GRP_TIP_MBR_PROFILE_UPDATED = 25 | jsToMap(GroupTipsEnum.TYPES)['GRP_TIP_MBR_PROFILE_UPDATED']; 26 | } 27 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_info_result.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_info.dart'; 2 | 3 | /// V2TimGroupInfoResult 4 | /// 5 | /// {@category Models} 6 | /// 7 | 8 | class V2TimGroupInfoResult { 9 | late int? resultCode; 10 | late String? resultMessage; 11 | late V2TimGroupInfo? groupInfo; 12 | 13 | V2TimGroupInfoResult({ 14 | this.resultCode, 15 | this.resultMessage, 16 | this.groupInfo, 17 | }); 18 | 19 | V2TimGroupInfoResult.fromJson(Map json) { 20 | resultCode = json['resultCode']; 21 | resultMessage = json['resultMessage']; 22 | groupInfo = V2TimGroupInfo.fromJson(json['groupInfo']); 23 | } 24 | 25 | Map toJson() { 26 | final Map data = {}; 27 | data['resultCode'] = resultCode; 28 | data['resultMessage'] = resultMessage; 29 | data['groupInfo'] = groupInfo?.toJson(); 30 | return data; 31 | } 32 | } 33 | 34 | // { 35 | // "resultCode":0, 36 | // "resultMessage":"", 37 | // "groupInfo":{} 38 | // } 39 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_friend_search_param.dart: -------------------------------------------------------------------------------- 1 | /// V2TimFriendSearchParam 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimFriendSearchParam { 6 | late List keywordList; 7 | bool isSearchUserID = true; 8 | bool isSearchNickName = true; 9 | bool isSearchRemark = true; 10 | 11 | V2TimFriendSearchParam({ 12 | required this.keywordList, 13 | this.isSearchUserID = true, 14 | this.isSearchNickName = true, 15 | this.isSearchRemark = true, 16 | }); 17 | 18 | V2TimFriendSearchParam.fromJson(Map json) { 19 | keywordList = json['keywordList']; 20 | isSearchUserID = json['isSearchUserID']; 21 | isSearchNickName = json['isSearchNickName']; 22 | isSearchRemark = json['isSearchRemark']; 23 | } 24 | 25 | Map toJson() { 26 | final Map data = {}; 27 | data['keywordList'] = keywordList; 28 | data['isSearchUserID'] = isSearchUserID; 29 | data['isSearchNickName'] = isSearchNickName; 30 | data['isSearchRemark'] = isSearchRemark; 31 | return data; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_conversationList_filter.dart: -------------------------------------------------------------------------------- 1 | 2 | /// V2TimConversationListFilter 3 | /// 4 | /// {@category Models} 5 | /// 6 | class V2TimConversationListFilter { 7 | int? conversationType; 8 | int? nextSeq ; 9 | int? count; 10 | int? markType; 11 | String? groupName; 12 | 13 | V2TimConversationListFilter({ 14 | this.conversationType, 15 | this.nextSeq, 16 | this.markType, 17 | this.groupName, 18 | this.count, 19 | }); 20 | 21 | V2TimConversationListFilter.fromJson(Map json) { 22 | conversationType = json['conversationType']; 23 | nextSeq = json['nextSeq']; 24 | markType = json['markType']; 25 | groupName = json['groupName']; 26 | count = json['count']; 27 | 28 | } 29 | 30 | Map toJson() { 31 | final Map data = {}; 32 | data['conversationType'] = conversationType; 33 | data['nextSeq'] = nextSeq; 34 | data['markType'] = markType; 35 | data['groupName'] = groupName; 36 | data['count'] = count; 37 | return data; 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_group_member_info.dart: -------------------------------------------------------------------------------- 1 | class V2TimGroupMemberInfo { 2 | String? userID; 3 | String? nickName; 4 | String? nameCard; 5 | String? friendRemark; 6 | String? faceUrl; 7 | 8 | V2TimGroupMemberInfo({ 9 | this.userID, 10 | this.nickName, 11 | this.nameCard, 12 | this.friendRemark, 13 | this.faceUrl, 14 | }); 15 | 16 | V2TimGroupMemberInfo.fromJson(Map json) { 17 | userID = json['userID']; 18 | nickName = json['nickName']; 19 | nameCard = json['nameCard']; 20 | friendRemark = json['friendRemark']; 21 | faceUrl = json['faceUrl']; 22 | } 23 | 24 | Map toJson() { 25 | final Map data = {}; 26 | data['userID'] = userID; 27 | data['nickName'] = nickName; 28 | data['nameCard'] = nameCard; 29 | data['friendRemark'] = friendRemark; 30 | data['faceUrl'] = faceUrl; 31 | return data; 32 | } 33 | } 34 | 35 | // { 36 | // "userID":"", 37 | // "nickName":"", 38 | // "nameCard":"", 39 | // "friendRemark":"", 40 | // "faceUrl":"" 41 | // } 42 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/enum/group_change_info_type.dart: -------------------------------------------------------------------------------- 1 | /// 群信息变化类型 2 | /// 3 | /// {@category Enums} 4 | /// 5 | // ignore_for_file: constant_identifier_names 6 | 7 | class GroupChangeInfoType { 8 | ///非法值 9 | /// 10 | static const int V2TIM_GROUP_INFO_INVALID = 0; 11 | 12 | ///群名修改 13 | /// 14 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_NAME = 1; 15 | 16 | ///群简介修改 17 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_INTRODUCTION = 2; 18 | 19 | ///群公告修改 20 | /// 21 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_NOTIFICATION = 3; 22 | 23 | ///群头像修改 24 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_FACE_URL = 4; 25 | 26 | ///群主变更 27 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_OWNER = 5; 28 | 29 | ///群自定义字段变更 30 | /// 31 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_CUSTOM = 6; 32 | 33 | ///全员禁言字段变更 34 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_SHUT_UP_ALL = 8; 35 | 36 | ///消息接收选项变更 37 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_RECEIVE_MESSAGE_OPT = 10; 38 | 39 | ///加群选项变更 40 | static const int V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_ADD_OPT = 11; 41 | } 42 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_message_extension_result.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message_extension.dart'; 2 | 3 | /// V2TimMessageExtensionResult 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimMessageExtensionResult { 8 | late int resultCode; 9 | late String resultInfo; 10 | late V2TimMessageExtension? extension; 11 | 12 | V2TimMessageExtensionResult({ 13 | required this.resultCode, 14 | required this.resultInfo, 15 | required this.extension, 16 | }); 17 | 18 | V2TimMessageExtensionResult.fromJson(Map json) { 19 | resultCode = json["resultCode"] ?? -1; 20 | resultInfo = json["resultInfo"] ?? ""; 21 | if (json["extension"] != null) { 22 | extension = V2TimMessageExtension.fromJson(json["extension"]); 23 | } 24 | } 25 | 26 | Map toJson() { 27 | final Map data = {}; 28 | data["resultCode"] = resultCode; 29 | data["resultInfo"] = resultInfo; 30 | data["extension"] = extension?.toJson(); 31 | return data; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_friend_check_result.dart: -------------------------------------------------------------------------------- 1 | /// V2TimFriendCheckResult 2 | /// 3 | /// {@category Models} 4 | /// 5 | class V2TimFriendCheckResult { 6 | late String userID; 7 | late int resultCode; 8 | late String? resultInfo; 9 | late int resultType; 10 | 11 | V2TimFriendCheckResult({ 12 | required this.userID, 13 | required this.resultCode, 14 | this.resultInfo, 15 | required this.resultType, 16 | }); 17 | 18 | V2TimFriendCheckResult.fromJson(Map json) { 19 | userID = json['userID']; 20 | resultCode = json['resultCode']; 21 | resultInfo = json['resultInfo']; 22 | resultType = json['resultType']; 23 | } 24 | 25 | Map toJson() { 26 | final Map data = {}; 27 | data['userID'] = userID; 28 | data['resultCode'] = resultCode; 29 | data['resultInfo'] = resultInfo; 30 | data['resultType'] = resultType; 31 | return data; 32 | } 33 | } 34 | 35 | // { 36 | // "userID" : "", 37 | // "resultCode" : 0, 38 | // "resultInfo" : "", 39 | // "resultType" : 0, 40 | // } 41 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_member_enter.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_group_member_info.dart'; 2 | 3 | /// V2TimMemberEnter 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimMemberEnter { 8 | late String groupID; 9 | late List? memberList = List.empty(growable: true); 10 | 11 | V2TimMemberEnter({required this.groupID, this.memberList}); 12 | 13 | V2TimMemberEnter.fromJson(Map json) { 14 | groupID = json['groupID']; 15 | if (json['memberList'] != null) { 16 | memberList = List.empty(growable: true); 17 | json['memberList'].forEach((v) { 18 | memberList!.add(V2TimGroupMemberInfo.fromJson(v)); 19 | }); 20 | } 21 | } 22 | 23 | Map toJson() { 24 | final Map data = {}; 25 | data['groupID'] = groupID; 26 | if (memberList != null) { 27 | data['memberList'] = memberList!.map((v) => v!.toJson()).toList(); 28 | } 29 | return data; 30 | } 31 | } 32 | // { 33 | // "groupID":"", 34 | // "memberList":[{}] 35 | // } 36 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_custom_elem.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_elem.dart'; 2 | 3 | /// V2TimCustomElem 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimCustomElem extends V2TIMElem { 8 | late String? data; 9 | late String? desc; 10 | late String? extension; 11 | 12 | V2TimCustomElem({ 13 | this.data, 14 | this.desc, 15 | this.extension, 16 | }); 17 | 18 | V2TimCustomElem.fromJson(Map json) { 19 | data = json['data']; 20 | desc = json['desc']; 21 | extension = json['extension']; 22 | if (json['nextElem'] != null) { 23 | nextElem = Map.from(json['nextElem']); 24 | } 25 | } 26 | 27 | Map toJson() { 28 | final Map data = {}; 29 | data['data'] = this.data; 30 | data['desc'] = desc; 31 | data['extension'] = extension; 32 | if (nextElem != null) { 33 | data['nextElem'] = nextElem; 34 | } 35 | return data; 36 | } 37 | } 38 | // { 39 | // "data":"", 40 | // "desc":"", 41 | // "extension":"" 42 | // } 43 | -------------------------------------------------------------------------------- /tencent_im_sdk_plugin_platform_interface/lib/models/v2_tim_message_list_result.dart: -------------------------------------------------------------------------------- 1 | import 'package:tencent_im_sdk_plugin_platform_interface/models/v2_tim_message.dart'; 2 | 3 | /// V2TimConversationResult 4 | /// 5 | /// {@category Models} 6 | /// 7 | class V2TimMessageListResult { 8 | bool isFinished = false; 9 | List messageList = List.empty(growable: true); 10 | 11 | V2TimMessageListResult({ 12 | required this.isFinished, 13 | required this.messageList, 14 | }); 15 | 16 | V2TimMessageListResult.fromJson(Map json) { 17 | isFinished = json['isFinished'] ?? false; 18 | if (json['messageList'] != null) { 19 | messageList = List.empty(growable: true); 20 | for (var v in List.from(json['messageList'])) { 21 | messageList.add(V2TimMessage.fromJson(v)); 22 | } 23 | } 24 | } 25 | 26 | Map toJson() { 27 | final Map data = {}; 28 | data['isFinished'] = isFinished; 29 | if (messageList.isNotEmpty) { 30 | data['messageList'] = messageList.map((v) => v.toJson()).toList(); 31 | } 32 | return data; 33 | } 34 | } 35 | --------------------------------------------------------------------------------