feat: 修改权限问题
This commit is contained in:
parent
94d0a78e89
commit
e00754847d
@ -762,11 +762,9 @@
|
|||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_ENTITLEMENTS = PacketTunnel/HiddifyPacketTunnel.entitlements;
|
CODE_SIGN_ENTITLEMENTS = PacketTunnel/HiddifyPacketTunnel.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = NJRRF427XB;
|
||||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NJRRF427XB;
|
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
EXCLUDED_ARCHS = armv7;
|
EXCLUDED_ARCHS = armv7;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||||
@ -792,7 +790,6 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).PacketTunnel";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).PacketTunnel";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "HiFastVPN-iOS-Pord-PacketTunnel";
|
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
@ -818,11 +815,9 @@
|
|||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnelRelease.entitlements;
|
CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnelRelease.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = NJRRF427XB;
|
||||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NJRRF427XB;
|
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
EXCLUDED_ARCHS = armv7;
|
EXCLUDED_ARCHS = armv7;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||||
@ -848,7 +843,6 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).PacketTunnel";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).PacketTunnel";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "HiFastVPN-iOS-Pord-PacketTunnel";
|
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
@ -872,11 +866,9 @@
|
|||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_ENTITLEMENTS = PacketTunnel/HiddifyPacketTunnel.entitlements;
|
CODE_SIGN_ENTITLEMENTS = PacketTunnel/HiddifyPacketTunnel.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = NJRRF427XB;
|
||||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NJRRF427XB;
|
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
EXCLUDED_ARCHS = armv7;
|
EXCLUDED_ARCHS = armv7;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu17;
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
||||||
@ -902,7 +894,6 @@
|
|||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).PacketTunnel";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).PacketTunnel";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "HiFastVPN-iOS-Pord-PacketTunnel";
|
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
@ -980,11 +971,9 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = NJRRF427XB;
|
||||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NJRRF427XB;
|
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
"EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7;
|
"EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@ -1016,7 +1005,6 @@
|
|||||||
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.taw.hifastvpn;
|
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.taw.hifastvpn;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "HiFastVPN-iOS-Pord";
|
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||||
@ -1212,11 +1200,9 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = NJRRF427XB;
|
||||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NJRRF427XB;
|
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
"EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7;
|
"EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7;
|
||||||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "i386 arm64";
|
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "i386 arm64";
|
||||||
@ -1248,7 +1234,6 @@
|
|||||||
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.taw.hifastvpn;
|
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.taw.hifastvpn;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "HiFastVPN-iOS-Pord";
|
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||||
@ -1270,11 +1255,9 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/RunnerRelease.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/RunnerRelease.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CODE_SIGN_STYLE = Manual;
|
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = "";
|
DEVELOPMENT_TEAM = NJRRF427XB;
|
||||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = NJRRF427XB;
|
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
"EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7;
|
"EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@ -1306,7 +1289,6 @@
|
|||||||
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.taw.hifastvpn;
|
"PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.taw.hifastvpn;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "HiFastVPN-iOS-Pord";
|
|
||||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||||
SUPPORTS_MACCATALYST = NO;
|
SUPPORTS_MACCATALYST = NO;
|
||||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
|
||||||
|
|||||||
@ -38,8 +38,7 @@ class HIAntiLostController extends GetxController {
|
|||||||
} else {
|
} else {
|
||||||
// Mobile: Use Gal to save to gallery
|
// Mobile: Use Gal to save to gallery
|
||||||
// Check permission
|
// Check permission
|
||||||
final hasAccess = await Gal.hasAccess();
|
if (!await Gal.hasAccess()) {
|
||||||
if (!hasAccess) {
|
|
||||||
await Gal.requestAccess();
|
await Gal.requestAccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,7 +50,11 @@ class HIAntiLostController extends GetxController {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Save image error: $e");
|
debugPrint("Save image error: $e");
|
||||||
if (e is GalException) {
|
if (e is GalException) {
|
||||||
KRCommonUtil.kr_showToast("保存失败: No Permission");
|
if (e.type == GalExceptionType.accessDenied) {
|
||||||
|
await Gal.requestAccess();
|
||||||
|
} else {
|
||||||
|
KRCommonUtil.kr_showToast("保存失败: ${e.type.name}");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
KRCommonUtil.kr_showToast("保存失败: $e");
|
KRCommonUtil.kr_showToast("保存失败: $e");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -74,15 +74,9 @@ class HIUserInfoView extends GetView<HIUserInfoController> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Obx(() {
|
Obx(() {
|
||||||
final account = KRAppRunData.getInstance()
|
final authType = KRAppRunData.getInstance().kr_authType.value;
|
||||||
.kr_account
|
final accountText = authType == 'email' ? '${KRAppRunData.getInstance().kr_account.value.toString()}' : '待绑定';
|
||||||
.value;
|
|
||||||
final isDeviceLogin = account != null &&
|
|
||||||
account.startsWith('9000');
|
|
||||||
final accountText = (account == null ||
|
|
||||||
isDeviceLogin)
|
|
||||||
? '待绑定'
|
|
||||||
: '${KRAppRunData.getInstance().kr_account.value.toString()}';
|
|
||||||
return Text(
|
return Text(
|
||||||
accountText,
|
accountText,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
|||||||
@ -11,37 +11,25 @@ class KRChatwootController {
|
|||||||
final String baseUrl = 'https://app.chatwoot.com';
|
final String baseUrl = 'https://app.chatwoot.com';
|
||||||
final String inboxIdentifier = 'YXQmh16ymNYW1SVybhnoQQ9w';
|
final String inboxIdentifier = 'YXQmh16ymNYW1SVybhnoQQ9w';
|
||||||
|
|
||||||
KRChatwootController() {
|
|
||||||
KRSecureStorage().kr_readData(key: 'USER_INFO').then((value) {
|
|
||||||
print('KRSecureStorage_keyUserInfo: $value');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 获取当前用户信息
|
/// 获取当前用户信息
|
||||||
/// 建议从你的全局 UserState 或本地存储中动态获取
|
/// 建议从你的全局 UserState 或本地存储中动态获取
|
||||||
ChatwootUser get chatUser {
|
ChatwootUser get chatUser {
|
||||||
final appRunData = KRAppRunData.getInstance();
|
final appRunData = KRAppRunData.getInstance();
|
||||||
final userId = appRunData.kr_userId.value?.toString();
|
|
||||||
final deviceId = appRunData.deviceId;
|
final deviceId = appRunData.deviceId;
|
||||||
|
final authType = appRunData.kr_authType;
|
||||||
final account = appRunData.kr_account.value;
|
final account = appRunData.kr_account.value;
|
||||||
|
|
||||||
// 优先使用 userId 作为唯一标识,如果没有则使用 deviceId
|
|
||||||
final identifier = userId ?? deviceId ?? 'unknown_user';
|
|
||||||
|
|
||||||
// 名字使用账号,如果没有则显示 Guest
|
|
||||||
final name = account ?? 'Guest';
|
|
||||||
|
|
||||||
// 邮箱如果是邮箱格式则使用,否则构造一个唯一的虚拟邮箱以满足格式要求
|
// 邮箱如果是邮箱格式则使用,否则构造一个唯一的虚拟邮箱以满足格式要求
|
||||||
String email = '';
|
String email = '';
|
||||||
if (account != null && account.contains('@')) {
|
if (authType == 'device') {
|
||||||
email = account;
|
email = account.toString();
|
||||||
} else {
|
} else {
|
||||||
email = '$identifier@hifastvpn.com';
|
email = '待绑定$deviceId';
|
||||||
}
|
}
|
||||||
|
|
||||||
return ChatwootUser(
|
return ChatwootUser(
|
||||||
identifier: identifier, // 必填:用于关联历史聊天记录
|
identifier: account, // 必填:用于关联历史聊天记录
|
||||||
name: name,
|
name: deviceId,
|
||||||
email: email,
|
email: email,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,56 +14,28 @@ class _KRChatwootViewState extends State<KRChatwootView> {
|
|||||||
// 实例化控制器
|
// 实例化控制器
|
||||||
final KRChatwootController _controller = KRChatwootController();
|
final KRChatwootController _controller = KRChatwootController();
|
||||||
|
|
||||||
// 控制加载遮罩状态
|
|
||||||
bool _isPageLoading = true;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
// 获取系统状态栏高度
|
||||||
// 设置背景色为白色,确保顶部 20px 区域不漏出底色
|
final double statusBarHeight = MediaQuery.of(context).padding.top;
|
||||||
backgroundColor: Colors.white,
|
|
||||||
body: Padding(
|
|
||||||
// 在这里设置顶部 20px 的间距
|
|
||||||
padding: const EdgeInsets.only(top: 20.0),
|
|
||||||
child: Stack(
|
|
||||||
children: [
|
|
||||||
ChatwootWidget(
|
|
||||||
baseUrl: _controller.baseUrl,
|
|
||||||
websiteToken: _controller.inboxIdentifier,
|
|
||||||
user: _controller.chatUser,
|
|
||||||
locale: "zh_CN",
|
|
||||||
onAttachFile: _controller.onFilePicker,
|
|
||||||
onLoadStarted: () {
|
|
||||||
debugPrint("KRChatwoot: 开始加载 SDK");
|
|
||||||
},
|
|
||||||
closeWidget: () {
|
|
||||||
print('返回');
|
|
||||||
Get.back();
|
|
||||||
},
|
|
||||||
onLoadCompleted: () {
|
|
||||||
debugPrint("KRChatwoot: SDK 加载完毕");
|
|
||||||
if (mounted) {
|
|
||||||
setState(() => _isPageLoading = false);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
|
|
||||||
// 加载中的占位图
|
return Scaffold(
|
||||||
if (_isPageLoading)
|
backgroundColor: const Color(0xFFF9F9FB),
|
||||||
Container(
|
body: SafeArea(
|
||||||
color: Colors.white,
|
top: false, // 依然保持禁用自动顶部保护
|
||||||
child: const Center(
|
child: Padding(
|
||||||
child: Column(
|
// 在状态栏高度的基础上减去 10 像素,实现向上移动
|
||||||
mainAxisSize: MainAxisSize.min,
|
padding: EdgeInsets.only(top: statusBarHeight - 10),
|
||||||
children: [
|
child: ChatwootWidget(
|
||||||
CircularProgressIndicator(strokeWidth: 2),
|
baseUrl: _controller.baseUrl,
|
||||||
const SizedBox(height: 16),
|
websiteToken: _controller.inboxIdentifier,
|
||||||
Text("正在连接客服...", style: TextStyle(color: Colors.grey)),
|
user: _controller.chatUser,
|
||||||
],
|
locale: "zh_CN",
|
||||||
),
|
onAttachFile: _controller.onFilePicker,
|
||||||
),
|
onLoadStarted: () => debugPrint("KRChatwoot: 开始加载 SDK"),
|
||||||
),
|
closeWidget: () => Get.back(),
|
||||||
],
|
onLoadCompleted: () => debugPrint("KRChatwoot: SDK 加载完毕"),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user