Skip to main content

PSChat

Ví dụ

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
...,
home: YourHomeWidget(),
builder: (context, child) {
return FutureBuilder<List<dynamic>>(
future: Future.wait([
/// Future functions that use to get loginState, userId, deviceId
AuthScope.of(context).isLoggedIn(),
AuthScope.of(context).getUserId(),
AuthScope.of(context).getDeviceId(),
]),
builder: (context, snapshot) {
final data = snapshot.data;
final isLoggedIn =
data != null && data[0] != null ? data[0] as bool : false;
final userId =
data != null && data[1] != null ? data[1] as String : null;
final deviceId =
data != null && data[2] != null ? data[2] as String : null;
if (isLoggedIn &&
userId != null &&
userId.isNotEmpty &&
deviceId != null &&
deviceId.isNotEmpty) {
return PSChat(
userId: userId,
deviceId: deviceId,
apiClientOptions: PSChatApiClientOptions(
appId: "APP_ID",
fetchToken: fetchTokenFunction(),
),
onJoinGroupInviteLinkSuccess: (threadId) {
appRouter.push(
AppPage.messages.toPath,
extra: MessagesPageExtra(targetThreadId: threadId),
);
},
);
} else {
return child ?? const SizedBox.shrink();
}
},
);
}
);
}
}

Các thành phần

class PSChat extends StatelessWidget {
final String userId;
final String deviceId;
final PSChatApiClientOptions apiClientOptions;
final Widget? child;
final Function(String? threadId)? onJoinGroupInviteLinkSuccess;
final String? locale;
final bool? isGuest;
final Function(PSGuestDto guest)? onGuestInfo;
final String? botId;
}
TênMô tảBắt buộc
chatApiClientOptionsCác tham số để khởi tạo ChatApiClient
userIdTham số id của người dùng
deviceIdTham số id của thiết bị
botIdTham số id Bot. Khi người dùng mới truy cập vào sẽ luôn luôn có 1 thread chat với bot.
childTham số truyền vào widget con
isGuestTham số xác định bạn muốn login chat với guest (SDK sẽ tạo acc guest và trả thông tin acc qua hàm onGuestInfo).
showLogTham số truyền vào cho phép hiển thị log từ SDK hay không. Mặc định là false
onJoinGroupInviteLinkSuccessHàm gọi lại khi tham gia group thành công từ link mời
onGuestInfoHàm gọi lại trả ra thông tin của người dùng khách khi tạo tài khoản thành công
Ghi chú

Một số chức năng sẽ không hoạt động hoặc không hoạt động đúng cách khi không khai báo những hàm gọi lại.