import 'package:bytedesk_kefu/bytedesk_kefu.dart'; import 'package:bytedesk_kefu/util/bytedesk_constants.dart'; import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; // 需要首先调用anonymousLogin之后,再调用此接口 // 自定义用户信息接口-对接APP用户信息 class UserInfoPage extends StatefulWidget { const UserInfoPage({Key? key}) : super(key: key); @override _UserInfoPageState createState() => _UserInfoPageState(); } class _UserInfoPageState extends State { String _uid = ''; // 用户唯一uid String _username = ''; // 用户唯一用户名 String _nickname = ''; // 用户昵称 String _avatar = BytedeskConstants.DEFAULT_AVATA; // 用户头像 String _description = ''; // 用户备注 @override void initState() { _getProfile(); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('用户信息'), elevation: 0, ), body: ListView( children: ListTile.divideTiles( context: context, tiles: [ ListTile( title: const Text('唯一uid'), subtitle: Text(_uid), ), ListTile( title: const Text('用户名'), subtitle: Text(_username), ), ListTile( title: const Text('设置昵称(见代码)'), subtitle: Text(_nickname), onTap: () { // _setNickname(); }, ), ListTile( leading: Image.network( _avatar, height: 30, width: 30, ), title: const Text('设置头像(见代码)'), onTap: () { // _setAvatar(); }, ), ListTile( title: const Text('设置备注(见代码)'), subtitle: Text(_description), onTap: () { // _setDescription(); }, ), ], ).toList()), ); } void _getProfile() { // 查询当前用户信息:昵称、头像 BytedeskKefu.getProfile().then((user) => { setState(() { _uid = user.uid!; _username = user.username!; _nickname = user.nickname!; _avatar = user.avatar!; _description = user.description!; }) }); } void _setNickname() { // 可自定义用户昵称-客服端可见 String mynickname = '自定义APP昵称flutter'; BytedeskKefu.updateNickname(mynickname).then((user) => { setState(() { _nickname = mynickname; }), Fluttertoast.showToast(msg: "设置昵称成功") }); } void _setAvatar() { // 可自定义用户头像url-客服端可见,注意:是头像网址,非本地图片路径 String myavatarurl = 'https://chainsnow.oss-cn-shenzhen.aliyuncs.com/avatars/visitor_default_avatar.png'; // 头像网址url BytedeskKefu.updateAvatar(myavatarurl).then((user) => { setState(() { _avatar = myavatarurl; }), Fluttertoast.showToast(msg: "设置头像成功") }); } void _setDescription() { // 可自定义用户昵称-客服端可见 String description = '自定义用户备注'; BytedeskKefu.updateDescription(description).then((user) => { setState(() { _description = description; }), Fluttertoast.showToast(msg: "设置备注成功") }); } // 一次调用接口,同时设置:昵称、头像、备注 void _updateProfile() { // String mynickname = '自定义APP昵称flutter'; String myavatarurl = 'https://bytedesk.oss-cn-shenzhen.aliyuncs.com/avatars/girl.png'; // 头像网址url String mydescription = '自定义用户备注'; BytedeskKefu.updateProfile(mynickname, myavatarurl, mydescription) .then((user) => { setState(() { _nickname = mynickname; _avatar = myavatarurl; _description = mydescription; }), Fluttertoast.showToast(msg: "设置成功") }); } }