Browse Source

client:iOS 也关掉会员充值入口,这一版不提供应用内购买。构建号 1.0.3+47

Co-authored-by: Cursor <cursoragent@cursor.com>
along
Rodger-Wang 17 hours ago
parent
commit
455be5579a
  1. 5
      apps/client/lib/core/utils/app_features.dart
  2. 16
      apps/client/lib/data/services/network/auth_interceptor.dart
  3. 6
      apps/client/lib/modules/common/widgets/recharge_dialog.dart
  4. 6
      apps/client/lib/modules/settings/views/settings_view.dart
  5. 2
      apps/client/pubspec.yaml

5
apps/client/lib/core/utils/app_features.dart

@ -10,11 +10,12 @@ class AppFeatures {
/// 2026-08-28 起暂时关闭:新用户注册就送 30 天 VIP + 翻译/会议各 100 分钟
/// + 智能体 100 次,这期间不引导充值。
///
/// 置回 true 即可在安卓也恢复,影响两处:
/// 置回 true 后 iOS 和安卓一起恢复,影响:
/// 1. 「设置」页的会员充值卡片(settings_view.dart)
/// 2. 额度不足/会员过期时的充值弹窗里的「去充值」按钮(recharge_dialog.dart)
/// 3. 服务端返回需会员时弹窗里的「去开通」(auth_interceptor.dart)
///
/// iOS 不受这个开关控制,入口始终打开,购买走 Apple IAP。
/// 2026-10-25 这一版 iOS 也不送审充值,入口跟安卓一样关掉。
///
/// 注意:关闭的只是**入口**,goodsvip/goodstrans/goodsmeet 这几个页面本身还在,
/// 路由也没删——万一还有别的地方能跳进去,页面不会崩。

16
apps/client/lib/data/services/network/auth_interceptor.dart

@ -6,6 +6,7 @@ import 'dart:convert';
import 'package:crypto/crypto.dart';
import 'package:get_storage/get_storage.dart';
import '../../../core/utils/app_features.dart';
import '../../../core/utils/logger.dart';
import 'entity/base_entity.dart';
import '../../../routes/app_routes.dart';
@ -154,13 +155,14 @@ class AuthInterceptor extends Interceptor {
onPressed: () => Get.back(),
child: Text('cancel'.tr),
),
TextButton(
onPressed: () {
Get.back();
Get.toNamed(Routes.goodsvip);
},
child: Text('vipRequiredGo'.tr),
),
if (AppFeatures.rechargeEnabled)
TextButton(
onPressed: () {
Get.back();
Get.toNamed(Routes.goodsvip);
},
child: Text('vipRequiredGo'.tr),
),
],
),
barrierDismissible: true,

6
apps/client/lib/modules/common/widgets/recharge_dialog.dart

@ -1,4 +1,3 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../routes/app_routes.dart';
@ -35,9 +34,8 @@ void showRechargeDialog(String type) {
.tr, // 会员过期描述 / 余额不足描述
textAlign: TextAlign.center,
),
// 安卓在充值入口关闭期间只保留提示。iOS 走 Apple IAP,按钮始终保留。
if (AppFeatures.rechargeEnabled ||
defaultTargetPlatform == TargetPlatform.iOS) ...[
// 充值入口关闭时只保留提示,不提供去购买的按钮。
if (AppFeatures.rechargeEnabled) ...[
const SizedBox(height: 20),
SizedBox(
width: double.infinity,

6
apps/client/lib/modules/settings/views/settings_view.dart

@ -1,5 +1,4 @@
import 'dart:ui';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -237,11 +236,10 @@ class SettingsView extends GetView<SettingsController> {
// 构建Vip购买卡片
/// 会员充值,紧跟用户信息卡下方。
///
/// 安卓仍由 [AppFeatures.rechargeEnabled] 控制。iOS 始终展示。
/// iOS 和安卓都由 [AppFeatures.rechargeEnabled] 控制。
/// 这里只留一个入口,月 / 季 / 终身在会员页里选。
Widget _buildVipPurchaseCard(bool isDarkMode) {
if (defaultTargetPlatform != TargetPlatform.iOS &&
!AppFeatures.rechargeEnabled) {
if (!AppFeatures.rechargeEnabled) {
return const SizedBox.shrink();
}
return GestureDetector(

2
apps/client/pubspec.yaml

@ -1,7 +1,7 @@
name: eaimar
description: "Eaimar - AI Voice Assistant."
publish_to: "none"
version: 1.0.3+46
version: 1.0.3+47
environment:
sdk: ">=3.3.0 <4.0.0"

Loading…
Cancel
Save