143 lines
5.8 KiB
Dart
Executable File
143 lines
5.8 KiB
Dart
Executable File
import 'package:get/get.dart';
|
||
import 'package:easy_refresh/easy_refresh.dart';
|
||
import 'package:flutter/widgets.dart';
|
||
|
||
import '../../../services/api_service/kr_api.user.dart';
|
||
import '../../../utils/kr_common_util.dart';
|
||
|
||
class KRMessage {
|
||
final String title;
|
||
final List<String> content; // content 是一个字符串列表
|
||
|
||
KRMessage({required this.title, required this.content});
|
||
}
|
||
|
||
class HIHelpController extends GetxController {
|
||
final KRUserApi kr_userApi = KRUserApi();
|
||
// 通知列表数据
|
||
final RxList<KRMessage> kr_messages = <KRMessage>[
|
||
KRMessage(
|
||
title: '客户端下载问题',
|
||
content: [
|
||
'iOS设备下载客户端,需要使用除中国大陆以外的Apple ID,[link]点击这里[/link]获取海外Apple ID注册教程。',
|
||
'Mac OS设备下载客户端,可以直接前往Hi快VPN官网下载dmg格式文件安装。',
|
||
'Android设备下载客户端,可以直接前往Hi快VPN官网下载apk格式文件安装。',
|
||
'PC设备下载客户端,可以直接前往Hi快VPN官网下载exe格式文件安装。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '套餐支付问题',
|
||
content: [
|
||
'支付页面无法打开:尝试更换网络,或检查并断开连接其它VPN软件。',
|
||
'支付页面无法正确显示:请退出客户端重新进入,如仍无法正确显示,请截图并联系在线客服。',
|
||
'支付成功但套餐未正确激活:请退出客户端后五分钟重新进入,如仍未正确激活,请截图您的支付记录,与在线客服联系,核实后会帮您手动激活。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '账号问题',
|
||
content: [
|
||
'每部设备在安装客户端后会自动生成一个账号,购买套餐后可以正常使用,如需登陆其他设备使用,则需要绑定邮箱。更换设备前建议先绑定邮箱。',
|
||
'注销账号后会自动清除您已经购买的套餐信息,无法找回,请谨慎对待您的账号。',
|
||
'无法收到邮箱验证码:请检查营销邮件箱或垃圾邮件箱。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '连接相关问题',
|
||
content: [
|
||
'无法连接:请检查设备网络是否畅通,如仍无法连接,请退出客户端并重新启动设备。',
|
||
'连接后速度慢,无法打开页面:请进入菜单-节点列表,手动切换节点或选择自动匹配最快网络。',
|
||
'连接后无法打开本地页面:请进入菜单-节点列表,切换为智能模式即可绕过本地ip,但会暴露您的ip地址。选择全局模式则可以保证您始终处于隐私ip状态。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '线路相关问题',
|
||
content: [
|
||
'Hi快VPN所有线路均为IEPL专线,最大程度保证线路纯净与连接速度。',
|
||
'Hi快VPN所有线路均不限流量不限带宽,请放心使用。',
|
||
'Hi快VPN所有线路均不保存任何用户网络日志,最大程度保障用户的隐私安全。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '设备与绑定问题',
|
||
content: [
|
||
'在绑定新设备之前请先添加您的邮箱。',
|
||
'Hi快VPN支持最多两台设备同时在线,包括一台iOS设备或Android,加一台Mac或PC。',
|
||
'如超出设备数量限制,最早登陆的同类设备将会自动下线,需要重新登陆,设备限制为系统固定设定,不支持调整。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '邀请用户相关问题',
|
||
content: [
|
||
'邀请用户请进入菜单-邀请好友页面,点击“我的邀请码”分享链接,直接分享至任意平台。受邀好友在根据流程安装好客户端后,进入菜单-邀请好友页面,贴入邀请码,保存后购买任一套餐,您和好友将会同时获得3天免费使用时长。',
|
||
'请务必先行让受邀好友填写邀请码后再购买套餐,否则将无法激活免费时长。',
|
||
],
|
||
),
|
||
KRMessage(
|
||
title: '闪连功能相关问题',
|
||
content: [
|
||
'闪连功能可以为您提供最便捷的VPN使用体验,在设置好您的使用偏好并开启闪连功能后,未来只需要点击打开客户端,软件即自动连接,无需再点击任意按钮。',
|
||
'在后台关闭客户端后,连接自动断开。如未在后台关闭,则连接不会断开。如长时间设备锁屏并没有任何操作,连接会自动断开。',
|
||
],
|
||
),
|
||
].obs;
|
||
|
||
final RxBool kr_isLoading = false.obs;
|
||
final RxBool kr_hasMore = true.obs;
|
||
int kr_page = 1;
|
||
final int kr_size = 10;
|
||
final EasyRefreshController refreshController = EasyRefreshController();
|
||
final ScrollController kr_scrollController = ScrollController();
|
||
|
||
@override
|
||
void onInit() {
|
||
super.onInit();
|
||
// 隐藏全局订阅按钮
|
||
// kr_getMessageList();
|
||
}
|
||
|
||
// 刷新列表
|
||
Future<void> kr_onRefresh() async {
|
||
kr_page = 1;
|
||
kr_hasMore.value = true;
|
||
kr_messages.clear();
|
||
await kr_getMessageList();
|
||
refreshController.finishRefresh();
|
||
}
|
||
|
||
// 加载更多
|
||
Future<void> kr_onLoadMore() async {
|
||
if (!kr_hasMore.value || kr_isLoading.value) {
|
||
refreshController.finishLoad(IndicatorResult.noMore);
|
||
return;
|
||
}
|
||
kr_page++;
|
||
await kr_getMessageList();
|
||
refreshController.finishLoad(kr_hasMore.value ? IndicatorResult.success : IndicatorResult.noMore);
|
||
}
|
||
|
||
Future<void> kr_getMessageList() async {
|
||
if (kr_isLoading.value) return;
|
||
kr_isLoading.value = true;
|
||
|
||
final either = await kr_userApi.kr_getMessageList(kr_page, kr_size);
|
||
either.fold(
|
||
(error) {
|
||
KRCommonUtil.kr_showToast(error.msg);
|
||
if (kr_page > 1) kr_page--;
|
||
},
|
||
(list) {
|
||
|
||
},
|
||
);
|
||
|
||
kr_isLoading.value = false;
|
||
}
|
||
|
||
@override
|
||
void onClose() {
|
||
refreshController.dispose();
|
||
kr_scrollController.dispose();
|
||
super.onClose();
|
||
}
|
||
}
|