feat: iOS 审核阉割版 - iOS 蓝牙功能屏蔽 + Info.plist 删蓝牙权限 + AI 提示词去医疗化(应对 App Store 1.4.1)
- iOS 蓝牙 UI 入口用 Platform.isIOS 屏蔽(抽屉/设置页/记数据卡片/AI 嵌入链接) - Info.plist 删除 NSBluetoothAlwaysUsageDescription 和 NSBluetoothPeripheralUsageDescription - AI 提示词重写:只描述客观事实和综合信息,不给医疗建议,不做关联性分析/推测 - 所有"专家/教练/预问诊/预解读"角色改为"记录/整理/结构化提取助手" - 去掉基于疾病(冠心病/糖尿病等)的饮食运动建议 - 保留正常值参考范围用于客观描述"超出范围",不作诊断
This commit is contained in:
@@ -26,10 +26,6 @@
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSBluetoothAlwaysUsageDescription</key>
|
||||
<string>需要使用蓝牙连接支持的血压计等健康设备,以同步用户主动测量的健康数据</string>
|
||||
<key>NSBluetoothPeripheralUsageDescription</key>
|
||||
<string>需要使用蓝牙连接支持的血压计等健康设备</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>需要使用相机拍摄饮食照片和体检报告,以便 AI 分析和记录</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
|
||||
@@ -1194,7 +1194,9 @@ class ChatMessagesView extends ConsumerWidget {
|
||||
pushRoute(ref, 'reports');
|
||||
break;
|
||||
case 'device':
|
||||
pushRoute(ref, 'devices');
|
||||
if (!Platform.isIOS) {
|
||||
pushRoute(ref, 'devices');
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (uri.host.isNotEmpty) pushRoute(ref, uri.host);
|
||||
@@ -2148,7 +2150,12 @@ final _agentActions = <ActiveAgent, List<_AgentAction>>{
|
||||
};
|
||||
|
||||
extension _AgentActionsExt on ActiveAgent {
|
||||
List<_AgentAction> get actions =>
|
||||
_agentActions[this] ??
|
||||
[const _AgentAction(label: '开始对话', icon: Icons.chat_outlined)];
|
||||
List<_AgentAction> get actions {
|
||||
final all = _agentActions[this] ??
|
||||
[const _AgentAction(label: '开始对话', icon: Icons.chat_outlined)];
|
||||
if (Platform.isIOS) {
|
||||
return all.where((a) => a.route != 'devices').toList();
|
||||
}
|
||||
return all;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'dart:io';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shadcn_ui/shadcn_ui.dart';
|
||||
@@ -49,11 +50,12 @@ class SettingsPage extends ConsumerWidget {
|
||||
title: '长辈模式',
|
||||
onTap: () => pushRoute(ref, 'elderMode'),
|
||||
),
|
||||
_SettingsTile(
|
||||
icon: LucideIcons.bluetooth,
|
||||
title: '蓝牙设备',
|
||||
onTap: () => pushRoute(ref, 'devices'),
|
||||
),
|
||||
if (!Platform.isIOS)
|
||||
_SettingsTile(
|
||||
icon: LucideIcons.bluetooth,
|
||||
title: '蓝牙设备',
|
||||
onTap: () => pushRoute(ref, 'devices'),
|
||||
),
|
||||
_SettingsTile(
|
||||
icon: LucideIcons.bell,
|
||||
title: '消息通知',
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'dart:io';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:shadcn_ui/shadcn_ui.dart';
|
||||
@@ -371,7 +372,7 @@ class _NavigationSection extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final elderMode = ElderModeScope.enabledOf(context);
|
||||
final items = [
|
||||
final allItems = <_NavItem>[
|
||||
_NavItem(
|
||||
icon: LucideIcons.folderHeart,
|
||||
title: '档案',
|
||||
@@ -421,6 +422,9 @@ class _NavigationSection extends StatelessWidget {
|
||||
colors: AppColors.deviceGradient.colors,
|
||||
),
|
||||
];
|
||||
final items = Platform.isIOS
|
||||
? allItems.where((item) => item.route != 'devices').toList()
|
||||
: allItems;
|
||||
|
||||
return _LightSection(
|
||||
title: '常用功能',
|
||||
|
||||
Reference in New Issue
Block a user