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ên | Mô tả | Bắt buộc |
---|---|---|
chatApiClientOptions | Các tham số để khởi tạo ChatApiClient | ✓ |
userId | Tham số id của người dùng | ✓ |
deviceId | Tham số id của thiết bị | ✓ |
botId | Tham 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. | ✗ |
child | Tham số truyền vào widget con | ✗ |
isGuest | Tham 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 ). | ✗ |
showLog | Tham số truyền vào cho phép hiển thị log từ SDK hay không. Mặc định là false | ✗ |
onJoinGroupInviteLinkSuccess | Hàm gọi lại khi tham gia group thành công từ link mời | ✗ |
onGuestInfo | Hà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.