bytedesk helpdesk system
bytedesk flutter helpdesk sdk
Features
- support andorid/ios/web
- chat with agent
- shopping chat, send commodity info
- send post script message
- check online status
- get history thread
- message voice && vibrate setting
- chat with robot
- send and play video message
- chat notification
Getting Started
Zero Step: Copy assets dir from bytedesk_demo and add to pubspec.yaml
//
bytedesk_kefu: ^1.6.0
//
assets:
- assets/audio/
- assets/images/chat/
- assets/images/feedback/
iOS
Add the following keys to your Info.plist file, located in ios/Runner/Info.plist:
<key>NSLocalNetworkUsageDescription</key>
<string>Looking for local tcp Bonjour service</string>
<key>NSBonjourServices</key>
<array>
<string>mqtt.tcp</string>
</array>
Android
Add the following Android permissions to the AndroidManifest.xml file, located in android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
First Step: Register Account
Second Step:Login
// 获取企业uid,登录后台->客服->渠道->flutter
// http://www.weiyuai.cn/admin/cs/channel
String orgUid = "df_org_uid";
// 第一步:初始化
BytedeskKefu.init(orgUid);
Third Step:Contact
BytedeskKefu.startWorkGroupChat(context, workGroupWid, "title");
Completed
image1 | image2 | image3 |
---|---|---|
Change UI
- create new folder: vendors
- Download latest source code, put into vendors folder
- integrate source in pubspect.yaml
bytedesk_kefu:
path: ./vendors/bytedesk_kefu
对话SDK
客户端
技术栈
- springboot-3.x for 后端
- python for ai
- react for web前端
- flutter for 移动客户端(ios&android)
- electron for 桌面客户端(windows&mac&linux)
联系
Libraries
- blocs/feedback_bloc/bloc
- blocs/feedback_bloc/feedback_bloc
- blocs/feedback_bloc/feedback_event
- blocs/feedback_bloc/feedback_state
- blocs/help_bloc/bloc
- blocs/help_bloc/help_bloc
- blocs/help_bloc/help_event
- blocs/help_bloc/help_state
- blocs/leavemsg_bloc/bloc
- blocs/leavemsg_bloc/leavemsg_bloc
- blocs/leavemsg_bloc/leavemsg_event
- blocs/leavemsg_bloc/leavemsg_state
- blocs/message_bloc/bloc
- blocs/message_bloc/message_bloc
- blocs/message_bloc/message_event
- blocs/message_bloc/message_state
- blocs/thread_bloc/bloc
- blocs/thread_bloc/thread_bloc
- blocs/thread_bloc/thread_event
- blocs/thread_bloc/thread_state
- blocs/ticket_bloc/bloc
- blocs/ticket_bloc/ticket_bloc
- blocs/ticket_bloc/ticket_event
- blocs/ticket_bloc/ticket_state
- bytedesk_kefu
- bytedesk_kefu_method_channel
- bytedesk_kefu_platform_interface
- bytedesk_kefu_web
- http/bytedesk_base_api
- http/bytedesk_device_api
- http/bytedesk_faq_api
- http/bytedesk_feedback_api
- http/bytedesk_leavemsg_api
- http/bytedesk_message_api
- http/bytedesk_thread_api
- http/bytedesk_ticket_api
- http/bytedesk_user_api
- model/answer
- model/app
- model/auth
- model/bfeedback
- model/bfeedbackJsonResult
- model/category
- model/codeResult
- model/contact
- model/friend
- model/group
- model/helpArticle
- model/helpCategory
- model/jsonResult
- model/markThread
- model/message
- model/message_data
- model/message_json
- model/message_protobuf
- model/message_provider
- model/model
- model/oauth
- model/organization
- model/queue
- model/requestThread
- model/robot
- model/thread
- model/thread_data
- model/thread_json
- model/thread_protobuf
- model/thread_provider
- model/upload_jsonresult
- model/uploadJsonResult
- model/user
- model/user_protobuf
- model/userJsonResult
- model/visitor
- model/visitorJsonResult
- model/wechatId
- model/wechatResult
- model/wechatUserinfo
- model/workGroup
- mqtt/bytedesk_mqtt
- mqtt/payload_builder
- protobuf/message.pb
- protobuf/message.pbenum
- protobuf/message.pbjson
- protobuf/message.pbserver
- protobuf/thread.pb
- protobuf/thread.pbenum
- protobuf/thread.pbjson
- protobuf/thread.pbserver
- protobuf/user.pb
- protobuf/user.pbenum
- protobuf/user.pbjson
- protobuf/user.pbserver
- repositories/feedback_repository
- repositories/help_repository
- repositories/leavemsg_repository
- repositories/message_repository
- repositories/profile_repository
- repositories/repositories
- repositories/thread_repository
- repositories/ticket_repository
- repositories/user_repository
- stomp/bytedesk_stomp
- ui/chat/page/chat_kf_page
- ui/chat/page/chat_webview_page
- ui/chat/page/video_play_page
- ui/chat/provider/chat_kf_provider
- ui/chat/provider/chat_thread_provider
- ui/chat/widget/flutter_html/custom_render
- ui/chat/widget/flutter_html/flutter_html
- ui/chat/widget/flutter_html/html_parser
- ui/chat/widget/flutter_html/src/anchor
- ui/chat/widget/flutter_html/src/css_parser
- ui/chat/widget/flutter_html/src/html_elements
- ui/chat/widget/flutter_html/src/interactable_element
- ui/chat/widget/flutter_html/src/layout_element
- ui/chat/widget/flutter_html/src/replaced_element
- ui/chat/widget/flutter_html/src/styled_element
- ui/chat/widget/flutter_html/src/utils
- ui/chat/widget/flutter_html/style
- ui/chat/widget/message_widget
- ui/faq/page/help_article_detail_page
- ui/faq/page/help_article_list_page
- ui/faq/page/help_page
- ui/faq/provider/help_article_detail_provider
- ui/faq/provider/help_article_list_provider
- ui/faq/provider/help_provider
- ui/feedback/page/feedback_history_page
- ui/feedback/page/feedback_page
- ui/feedback/page/feedback_submit_page
- ui/feedback/provider/feedback_history_provider
- ui/feedback/provider/feedback_provider
- ui/feedback/provider/feedback_submit_provider
- ui/leavemsg/page/leavemsg_history_page
- ui/leavemsg/page/leavemsg_page
- ui/leavemsg/provider/leavemsg_history_provider
- ui/leavemsg/provider/leavemsg_provider
- ui/profile/page/user_profile_page
- ui/profile/provider/user_profile_provider
- ui/rate/page/rate_page
- ui/rate/provider/rate_provider
- ui/ticket/page/ticket_page
- ui/ticket/page/ticket_submit_page
- ui/ticket/provider/ticket_provider
- ui/ticket/provider/ticket_submit_provider
- ui/widget/chat_input
- ui/widget/emoji_picker_flutter/emoji_picker_flutter
- ui/widget/emoji_picker_flutter/src/category_emoji
- ui/widget/emoji_picker_flutter/src/category_icon
- ui/widget/emoji_picker_flutter/src/category_icons
- ui/widget/emoji_picker_flutter/src/config
- ui/widget/emoji_picker_flutter/src/default_emoji_picker_view
- ui/widget/emoji_picker_flutter/src/emoji
- ui/widget/emoji_picker_flutter/src/emoji_lists
- ui/widget/emoji_picker_flutter/src/emoji_picker
- ui/widget/emoji_picker_flutter/src/emoji_picker_builder
- ui/widget/emoji_picker_flutter/src/emoji_picker_internal_utils
- ui/widget/emoji_picker_flutter/src/emoji_picker_utils
- ui/widget/emoji_picker_flutter/src/emoji_skin_tones
- ui/widget/emoji_picker_flutter/src/emoji_view_state
- ui/widget/emoji_picker_flutter/src/recent_emoji
- ui/widget/emoji_picker_flutter/src/triangle_shape
- ui/widget/emoji_picker_view
- ui/widget/empty_widget
- ui/widget/expanded_viewport
- ui/widget/extra_item
- ui/widget/image_choose_widget
- ui/widget/loading_widget
- ui/widget/media_choose_widget
- ui/widget/photo_view_wrapper
- ui/widget/voice_record/custom_overlay
- ui/widget/voice_record/voice_animation
- ui/widget/voice_record/voice_widget
- util/bytedesk_constants
- util/bytedesk_eventbus
- util/bytedesk_events
- util/bytedesk_extraparam
- util/bytedesk_loading
- util/bytedesk_utils
- util/bytedesk_uuid