diff --git a/assets/file.json b/assets/file.json index a81422d..8dfdc0f 100644 --- a/assets/file.json +++ b/assets/file.json @@ -1,3 +1,3 @@ [ - "assets/miniapp/mhtControl_1.0.57.zip" + "assets/miniapp/mhtControl_1.0.59.zip" ] \ No newline at end of file diff --git a/assets/mhlangs/zh_CN.json b/assets/mhlangs/zh_CN.json index ef20bb5..8fb907b 100644 --- a/assets/mhlangs/zh_CN.json +++ b/assets/mhlangs/zh_CN.json @@ -605,6 +605,7 @@ "设备解绑提醒": "设备解绑提醒", "位置权限说明": "位置权限说明", "获得位置信息,连接附近的蓝牙设备与推荐附近门店": "获得位置信息,连接附近的蓝牙设备与推荐附近门店和首页获取天气情况", + "获得位置信息,连接附近的蓝牙设备与推荐附近门店和首页获取天气情况": "获得位置信息,连接附近的蓝牙设备与推荐附近门店和首页获取天气情况", "蓝牙权限说明": "蓝牙权限说明", "搜索链接附近的蓝牙设备": "搜索链接附近的蓝牙设备", "附近设备权限说明": "附近设备权限说明", diff --git a/assets/miniapp/mhtControl_1.0.57.zip b/assets/miniapp/mhtControl_1.0.59.zip similarity index 97% rename from assets/miniapp/mhtControl_1.0.57.zip rename to assets/miniapp/mhtControl_1.0.59.zip index b3f5c51..3e941fe 100644 Binary files a/assets/miniapp/mhtControl_1.0.57.zip and b/assets/miniapp/mhtControl_1.0.59.zip differ diff --git a/lib/common/color/ServiceConstant.dart b/lib/common/color/ServiceConstant.dart index c06f025..c1e9985 100644 --- a/lib/common/color/ServiceConstant.dart +++ b/lib/common/color/ServiceConstant.dart @@ -1,10 +1,10 @@ class ServiceConstant { // static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址 - // static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址 - static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址 + static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址 + // static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址 // static const String baseHost = "vsbst-api.he-info.cn";//服务地址 - static const String service_address = "http://$baseHost"; - // static const String service_address = "https://$baseHost"; + // static const String service_address = "http://$baseHost"; + static const String service_address = "https://$baseHost"; static String server_service = "/vsbs_app_server"; //服务名称 diff --git a/lib/common/util/CommonVariables.dart b/lib/common/util/CommonVariables.dart index a5e2c62..4f7780a 100644 --- a/lib/common/util/CommonVariables.dart +++ b/lib/common/util/CommonVariables.dart @@ -30,4 +30,14 @@ class CommonVariables { ["蓝牙权限说明".tr, "搜索链接附近的蓝牙设备".tr], ["附近设备权限说明".tr, "搜索链接附近的蓝牙设备".tr] ]; + + List locationpermissionInfo = [ + ["位置权限说明".tr, "获得位置信息以便获取天气情况".tr], + ]; + + List bluetoothpermissionInfo = [ + ["位置权限说明".tr, "获得位置信息,连接附近的蓝牙设备".tr], + ["蓝牙权限说明".tr, "搜索链接附近的蓝牙设备".tr], + ["附近设备权限说明".tr, "搜索链接附近的蓝牙设备".tr] + ]; } diff --git a/lib/controller/device/blueteeth_bind_controller.dart b/lib/controller/device/blueteeth_bind_controller.dart index 4fd3471..d9c0740 100644 --- a/lib/controller/device/blueteeth_bind_controller.dart +++ b/lib/controller/device/blueteeth_bind_controller.dart @@ -6,11 +6,13 @@ import 'package:easydevice/easydevice.dart'; import 'package:ef/ef.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/person/person_controller.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/model/BleDeviceData.dart'; import 'package:vbvs_app/model/api_response.dart'; @@ -347,8 +349,14 @@ class BlueteethBindController extends GetControllerEx { String serviceApi = ServiceConstant.device_bind; String queryUrl = "$serviceAddress$serviceName$serviceApi"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -403,8 +411,14 @@ class BlueteethBindController extends GetControllerEx { String serviceApi = ServiceConstant.device_bind; String queryUrl = "$serviceAddress$serviceName$serviceApi"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/device/body_device_controller.dart b/lib/controller/device/body_device_controller.dart index cc0efcf..8cb8bd1 100644 --- a/lib/controller/device/body_device_controller.dart +++ b/lib/controller/device/body_device_controller.dart @@ -5,9 +5,11 @@ import 'package:ef/ef.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/model/api_response.dart'; part 'body_device_controller.g.dart'; // 由json_serializable自动生成的部分 @@ -55,8 +57,14 @@ class BodyDeviceController extends GetControllerEx { String queryUrl = "${serviceAddress}${serviceName}${serviceApi}?bindNum=1"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -97,8 +105,14 @@ class BodyDeviceController extends GetControllerEx { String queryUrl = "${serviceAddress}${serviceName}${serviceApi}?bindType=${model.type}${key != null ? '&key=$key' : ''}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -139,8 +153,14 @@ class BodyDeviceController extends GetControllerEx { String serviceApi = ServiceConstant.device_bind; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -275,8 +295,14 @@ class BodyDeviceController extends GetControllerEx { String serviceApi = ServiceConstant.device_show; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/device/device_share_controller.dart b/lib/controller/device/device_share_controller.dart index 5b3b235..c33e9f6 100644 --- a/lib/controller/device/device_share_controller.dart +++ b/lib/controller/device/device_share_controller.dart @@ -5,9 +5,11 @@ import 'package:EasyDartModule/EasyDartModule.dart'; import 'package:ef/ef.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/model/api_response.dart'; part 'device_share_controller.g.dart'; // 由json_serializable自动生成的部分 @@ -100,8 +102,14 @@ class DeviceShareController extends GetControllerEx { String serviceApi = ServiceConstant.device_share; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -158,8 +166,14 @@ class DeviceShareController extends GetControllerEx { String serviceApi = ServiceConstant.device_share; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/device/device_share_list_controller.dart b/lib/controller/device/device_share_list_controller.dart index e29b1a9..0ba40eb 100644 --- a/lib/controller/device/device_share_list_controller.dart +++ b/lib/controller/device/device_share_list_controller.dart @@ -4,9 +4,11 @@ import 'package:EasyDartModule/EasyDartModule.dart'; import 'package:ef/ef.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/model/api_response.dart'; part 'device_share_list_controller.g.dart'; // 由json_serializable自动生成的部分 @@ -53,8 +55,14 @@ class DeviceShareListController extends GetControllerEx { String queryUrl = "${serviceAddress}${serviceName}${serviceApi}" "${key != null ? '?key=$key&' : '?'}mac=$mac"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -97,8 +105,14 @@ class DeviceShareListController extends GetControllerEx { String serviceApi = ServiceConstant.share_deleted; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/login/login_controller.dart b/lib/controller/login/login_controller.dart index cd85ef0..87e8346 100644 --- a/lib/controller/login/login_controller.dart +++ b/lib/controller/login/login_controller.dart @@ -139,8 +139,14 @@ class LoginController extends GetControllerEx { String serviceApi = ServiceConstant.send_code; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { diff --git a/lib/controller/message/message_controller.dart b/lib/controller/message/message_controller.dart index 29d47fd..445ea7b 100644 --- a/lib/controller/message/message_controller.dart +++ b/lib/controller/message/message_controller.dart @@ -5,9 +5,11 @@ import 'package:ef/ef.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/model/api_response.dart'; part 'message_controller.g.dart'; // 由json_serializable自动生成的部分 @@ -57,8 +59,14 @@ class MessageController extends GetControllerEx { String queryUrl = "${serviceAddress}${serviceName}${serviceApi}?type=${messageType}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -101,8 +109,14 @@ class MessageController extends GetControllerEx { String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -171,8 +185,14 @@ class MessageController extends GetControllerEx { } String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/person/person_controller.dart b/lib/controller/person/person_controller.dart index e516fb6..eb7c59f 100644 --- a/lib/controller/person/person_controller.dart +++ b/lib/controller/person/person_controller.dart @@ -4,9 +4,11 @@ import 'package:EasyDartModule/EasyDartModule.dart'; import 'package:ef/ef.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/model/api_response.dart'; part 'person_controller.g.dart'; // 由json_serializable自动生成的部分 @@ -58,8 +60,14 @@ class PersonController extends GetControllerEx { String serviceApi = ServiceConstant.person_info; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -127,8 +135,14 @@ class PersonController extends GetControllerEx { String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { @@ -176,8 +190,14 @@ class PersonController extends GetControllerEx { String serviceApi = ServiceConstant.disease_list; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/user_info_controller.dart b/lib/controller/user_info_controller.dart index 5ae71d2..dc5bb94 100644 --- a/lib/controller/user_info_controller.dart +++ b/lib/controller/user_info_controller.dart @@ -64,6 +64,7 @@ class UserInfoController extends GetControllerEx { RxDouble textHalfWidth = 0.0.obs; List device_bind_status = []; int device_bind_flag = 0; //0。未初始化 1.已初始化 + int initLocationpermission = 0; //未初始化 Future uploadImg() async { EasyDartModule.logger.info("请求上传图片"); @@ -145,8 +146,14 @@ class UserInfoController extends GetControllerEx { String serviceApi = ServiceConstant.user_info; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String? language = ""; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language != null && language.isNotEmpty) { if (queryUrl.contains("?")) { diff --git a/lib/controller/weather/weather_controller.dart b/lib/controller/weather/weather_controller.dart index a297af9..0f91d0e 100644 --- a/lib/controller/weather/weather_controller.dart +++ b/lib/controller/weather/weather_controller.dart @@ -7,8 +7,12 @@ import 'package:geocoding/geocoding.dart'; import 'package:geolocator/geolocator.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:path/path.dart'; +import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/util/CommonVariables.dart'; +import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/controller/setting/language/language_controller.dart'; +import 'package:vbvs_app/controller/user_info_controller.dart'; +import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/pages/common/selectDialog.dart'; import 'package:weather/weather.dart'; @@ -77,14 +81,25 @@ class WeatherModelController extends GetControllerEx { // 获取当前位置并存储到 model Future _getCurrentLocation() async { try { + UserInfoController userInfoController = Get.find(); + if (userInfoController.model.login == null || + userInfoController.model.login != 1) { + return; + } Position position = await determinePosition(); if (position == null) { throw Exception("获取位置失败"); } String? language = "zh_CN"; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } List placemarks = []; // placemarks = await placemarkFromCoordinates(position.latitude, position.longitude, @@ -117,9 +132,9 @@ class WeatherModelController extends GetControllerEx { if (!serviceEnabled) { return Future.error('位置服务未启用'); } - try { - showPermissionInfoDialog(Get.context!, CommonVariables().permissionInfo); + showPermissionInfoDialog( + Get.context!, CommonVariables().locationpermissionInfo); } catch (e) { ef.log("$e"); } @@ -135,9 +150,9 @@ class WeatherModelController extends GetControllerEx { Navigator.of(Get.context!, rootNavigator: true).pop(); } - if (permission == LocationPermission.denied) { - return Future.error('位置权限被拒绝'); - } + if (permission == LocationPermission.denied) { + return Future.error('位置权限被拒绝'); + } if (permission == LocationPermission.deniedForever) { return Future.error('位置权限被永久拒绝'); @@ -173,8 +188,14 @@ class WeatherModelController extends GetControllerEx { try { weatherFactory.language = Language.CHINESE_SIMPLIFIED; String? language = "zh_CN"; - if (languageController.selectLanguage != null) { - language = languageController.selectLanguage.value!.language_code; + if (AppConstants().ent_type == APPPackageType.MHT.code) { + if (mhLanguageController.selectLanguage != null) { + language = mhLanguageController.selectLanguage.value!.language_code; + } + } else { + if (languageController.selectLanguage != null) { + language = languageController.selectLanguage.value!.language_code; + } } if (language == "zh_CN") { weatherFactory.language = Language.CHINESE_SIMPLIFIED; diff --git a/lib/main.dart b/lib/main.dart index ee2b3b8..c16418c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -567,15 +567,12 @@ Future dealBindProcess() async { } } -final GlobalKey navigatorKey = GlobalKey(); - class MyApp extends StatelessWidget { MyApp({super.key}); final ThemeController themeController = Get.put(ThemeController()); Widget buildmht(BuildContext context, BoxConstraints cons) { return GetMaterialApp( - navigatorKey: navigatorKey, // ✅ 注入 navigatorKey translations: AppLanguage(), debugShowCheckedModeBanner: false, title: '', diff --git a/lib/pages/main_bottom/component/main_page_b_bottom_change.dart b/lib/pages/main_bottom/component/main_page_b_bottom_change.dart index 3171e33..60e8890 100644 --- a/lib/pages/main_bottom/component/main_page_b_bottom_change.dart +++ b/lib/pages/main_bottom/component/main_page_b_bottom_change.dart @@ -13,6 +13,7 @@ import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/WebSocketMessage.dart'; import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart'; import 'package:vbvs_app/pages/mh_page/MattressControl.dart'; +import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart'; import 'package:vbvs_app/pages/mh_page/homepage/mht_sleep_report_page.dart'; import 'package:vbvs_app/pages/mh_page/homepage/new_Home_page.dart'; import 'package:vbvs_app/pages/mh_page/new_mine_page.dart'; @@ -26,6 +27,9 @@ class MainPageBBottomChange extends StatefulWidget { MainPageBBottomChange({Key? key}) : super(key: globalKey); + // static final GlobalKey<_HomePageState> globalKey = GlobalKey<_HomePageState>(); + + // MainPageBBottomChange({Key? key}) : super(key: key); // 静态方法:外部调用,跳转 tab static void jumpTo(int index) { final state = globalKey.currentState; @@ -35,37 +39,17 @@ class MainPageBBottomChange extends StatefulWidget { } static int? getCurrentIndex() { - final state = globalKey.currentState; - return state?.selectedIndex.value; + try { + final state = globalKey.currentState; + return state?.selectedIndex.value; + } catch (e) { + ef.log("$e"); + } } @override _HomePageState createState() => _HomePageState(); } -// class MainPageBBottomChange extends StatefulWidget { -// final GlobalKey<_HomePageState>? externalKey; - -// MainPageBBottomChange({Key? key, this.externalKey}) -// : super(key: key ?? externalKey); - -// static void jumpTo(int index) { -// final state = globalKey.currentState; -// if (state != null) { -// state.switchTab(index); -// } -// } - -// static int? getCurrentIndex() { -// final state = globalKey.currentState; -// return state?.selectedIndex; -// } - -// static final GlobalKey<_HomePageState> globalKey = -// GlobalKey<_HomePageState>(); - -// @override -// _HomePageState createState() => _HomePageState(); -// } class _HomePageState extends State with SingleTickerProviderStateMixin { @@ -99,6 +83,7 @@ class _HomePageState extends State @override void initState() { super.initState(); + debugPrint("MainPageBBottomChange initState hashCode=${this.hashCode}"); _controller = AnimationController( vsync: this, duration: const Duration(milliseconds: 300)); currentPosition = selectedIndex.toDouble(); @@ -195,12 +180,16 @@ class _HomePageState extends State try { UserInfoController userInfoController = Get.find(); WebviewTestController webviewTestController = Get.find(); - + if (index == 2) { - if(webviewTestController.ready.value) WebviewTestController webviewTestController = Get.find(); webviewTestController.web.jsbridge?.dart.switchLanguage( mhLanguageController.selectLanguage.value!.language_code); + // if (userInfoController.model.login != null && + // userInfoController.model.login == 1) { + // await checkBlueToothPermissin(); + // } + await webviewTestController.web.jsbridge?.dart.pageActive(true); //激活websocket edm.EasyDartModule.websocket.sendData(jsonEncode(WebSocketMessage( diff --git a/lib/pages/mh_page/device/device.dart b/lib/pages/mh_page/device/device.dart index d4a5da6..ed999d5 100644 --- a/lib/pages/mh_page/device/device.dart +++ b/lib/pages/mh_page/device/device.dart @@ -11,6 +11,7 @@ import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/main_bottom/global_controller.dart'; import 'package:vbvs_app/controller/mh_controller/device_list_controller.dart'; import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart'; +import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart'; import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; class DeviceInfoWidget extends GetView { @@ -151,8 +152,10 @@ class DeviceInfoWidget extends GetView { try { WebviewTestController webviewTestController = Get.find(); - webviewTestController.web.jsbridge?.dart - .switchLanguage(mhLanguageController.selectLanguage.value!.language_code); + webviewTestController.web.jsbridge?.dart + .switchLanguage(mhLanguageController + .selectLanguage.value!.language_code); + await checkBlueToothPermissin(); webviewTestController.web.jsbridge?.dart .pageActive(false); // await Future.delayed(Duration(seconds: 1)); diff --git a/lib/pages/mh_page/device/mht_blueteeth_device_page.dart b/lib/pages/mh_page/device/mht_blueteeth_device_page.dart index 78f5db5..75a86cf 100644 --- a/lib/pages/mh_page/device/mht_blueteeth_device_page.dart +++ b/lib/pages/mh_page/device/mht_blueteeth_device_page.dart @@ -132,7 +132,7 @@ class _MHTBlueteethDevicePageState extends State { if (!alreadyGranted) { // 弹出自定义提示 showPermissionInfoDialog( - Get.context!, CommonVariables().permissionInfo); + Get.context!, CommonVariables().bluetoothpermissionInfo); dialogShown = true; await Future.delayed(const Duration(milliseconds: 300)); diff --git a/lib/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart b/lib/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart index 561b07b..0388868 100644 --- a/lib/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart +++ b/lib/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart @@ -1,12 +1,16 @@ import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; +import 'package:permission_handler/permission_handler.dart'; import 'package:vbvs_app/common/color/appConstants.dart'; +import 'package:vbvs_app/common/util/CommonVariables.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/tool/CustomCard.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; +import 'package:vbvs_app/controller/user_info_controller.dart'; +import 'package:vbvs_app/pages/common/selectDialog.dart'; import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart'; import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; @@ -91,6 +95,7 @@ class _HomeDeviceStausWidgetState extends State { webviewTestController.web.jsbridge?.dart.switchLanguage( mhLanguageController .selectLanguage.value!.language_code); + await checkBlueToothPermissin(); webviewTestController.web.jsbridge?.dart .pageActive(false); await Future.delayed(Duration(seconds: 1)); @@ -128,3 +133,140 @@ class _HomeDeviceStausWidgetState extends State { ); } } + +// Future checkBlueToothPermissin() async { +// UserInfoController userInfoController = Get.find(); +// bool show = false; +// Map data = {}; +// var bluetoothScanGranted; +// var bluetoothConnectGranted; +// var locationGranted; +// try { +// // 如果没初始化过,就检查并请求权限 +// if (userInfoController.initLocationpermission != 1) { +// bluetoothScanGranted = await Permission.bluetoothScan.isGranted; +// bluetoothConnectGranted = await Permission.bluetoothConnect.isGranted; +// locationGranted = await Permission.location.isGranted; + +// // 如果权限没全部授予 +// if (!bluetoothScanGranted || +// !bluetoothConnectGranted || +// !locationGranted) { +// show = true; +// // 同屏显示权限说明弹窗(阻塞等待用户点击确认) +// showPermissionInfoDialog( +// Get.context!, +// CommonVariables().bluetoothpermissionInfo, +// ); + +// // 再请求权限 +// await [ +// Permission.bluetoothScan, +// Permission.bluetoothConnect, +// Permission.location, +// ].request(); + +// // 再次检查最新权限状态 +// bluetoothScanGranted = await Permission.bluetoothScan.isGranted; +// bluetoothConnectGranted = await Permission.bluetoothConnect.isGranted; +// locationGranted = await Permission.location.isGranted; +// } +// } +// // 通知 web 端 +// data = { +// 'bluetoothScanGranted': bluetoothScanGranted, +// 'bluetoothConnectGranted': bluetoothConnectGranted, +// 'locationGranted': locationGranted, +// }; +// WebviewTestController webviewTestController = Get.find(); +// // webviewTestController.web.jsbridge?.dart.updatePermission(data); +// } catch (e) { +// ef.log("蓝牙权限:$e"); +// } finally { +// if (show) { +// Navigator.of(Get.context!, rootNavigator: true).pop(); +// } +// } + +// // 标记初始化完成 +// userInfoController.initLocationpermission = 1; +// return data; +// } + +Future checkBlueToothPermissin() async { + UserInfoController userInfoController = Get.find(); + bool show = false; + Map data = {}; + var bluetoothScanGranted; + var bluetoothConnectGranted; + var locationGranted; + + try { + // 先显示权限说明弹窗(同屏显示) + bool bluetoothScanPermanentlyDenied = + await Permission.bluetoothScan.isPermanentlyDenied; + bool bluetoothConnectPermanentlyDenied = + await Permission.bluetoothConnect.isPermanentlyDenied; + bool locationPermanentlyDenied = + await Permission.location.isPermanentlyDenied; + + if (bluetoothScanPermanentlyDenied || + bluetoothConnectPermanentlyDenied || + locationPermanentlyDenied) { + return data; // 直接返回,不再弹窗申请 + } + if (userInfoController.initLocationpermission == 1) { + bluetoothScanGranted = await Permission.bluetoothScan.isGranted; + bluetoothConnectGranted = await Permission.bluetoothConnect.isGranted; + locationGranted = await Permission.location.isGranted; + data = { + 'bluetoothScanGranted': bluetoothScanGranted, + 'bluetoothConnectGranted': bluetoothConnectGranted, + 'locationGranted': locationGranted, + }; + return data; + } + showPermissionInfoDialog( + Get.context!, + CommonVariables().bluetoothpermissionInfo, + ); + show = true; + + // 检查并请求权限 + bluetoothScanGranted = await Permission.bluetoothScan.isGranted; + bluetoothConnectGranted = await Permission.bluetoothConnect.isGranted; + locationGranted = await Permission.location.isGranted; + + if (!bluetoothScanGranted || !bluetoothConnectGranted || !locationGranted) { + await [ + Permission.bluetoothScan, + Permission.bluetoothConnect, + Permission.location, + ].request(); + + // 更新权限状态 + bluetoothScanGranted = await Permission.bluetoothScan.isGranted; + bluetoothConnectGranted = await Permission.bluetoothConnect.isGranted; + locationGranted = await Permission.location.isGranted; + } + + data = { + 'bluetoothScanGranted': bluetoothScanGranted, + 'bluetoothConnectGranted': bluetoothConnectGranted, + 'locationGranted': locationGranted, + }; + + // 通知 web 端 + WebviewTestController webviewTestController = Get.find(); + // webviewTestController.web.jsbridge?.dart.updatePermission(data); + } catch (e) { + ef.log("蓝牙权限:$e"); + } finally { + if (show) { + Navigator.of(Get.context!, rootNavigator: true).pop(); + } + } + + userInfoController.initLocationpermission = 1; + return data; +} diff --git a/lib/pages/mh_page/test/WebviewTestModel.dart b/lib/pages/mh_page/test/WebviewTestModel.dart index accb3c2..9eb62a0 100644 --- a/lib/pages/mh_page/test/WebviewTestModel.dart +++ b/lib/pages/mh_page/test/WebviewTestModel.dart @@ -16,6 +16,7 @@ import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/WebSocketMessage.dart'; import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart'; import 'package:vbvs_app/pages/mh_page/device/controller/mht_bluetooth_controller.dart'; +import 'package:vbvs_app/pages/mh_page/homepage/component/HomeDeviceStausWidget.dart'; import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart'; class WebviewTestModel { @@ -225,6 +226,27 @@ class WebviewTestController extends GetControllerEx { } return true; }); + bridge.sdk.updatePermisson((args) async { + ef.log('获取权限: $args[0]'); + try { + if (MainPageBBottomChange.getCurrentIndex() != 2) { + return false; + } + Map data = await checkBlueToothPermissin(); + if (data == null || data.isEmpty) { + return false; + } + if (!data['bluetoothScanGranted'] || + !data['bluetoothConnectGranted'] || + !data['locationGranted']) { + return false; + } + return true; + } catch (e) { + ef.log("[网页加载失败]:$e"); + } + return true; + }); // bridge.sdk.bluetoothConnect((args) async { // ef.log('[蓝牙连接失败]: $args[0]'); // try { @@ -540,7 +562,8 @@ class WebviewTestView extends GetComponent { child: Obx(() { int? aa = MainPageBBottomChange.getCurrentIndex(); print(aa); - return (controller.ready.value && (MainPageBBottomChange.getCurrentIndex() == 2)) + // return (controller.ready.value && (MainPageBBottomChange.getCurrentIndex() == 2)) + return (controller.ready.value) ? controller.web.build() : Center(child: CircularProgressIndicator()); }), diff --git a/pubspec.yaml b/pubspec.yaml index 5b146be..7451f81 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,7 +8,8 @@ environment: sdk: ^3.5.4 fluwx: - app_id: 'wx929c548fea6af9c7' #填写自己的 WeChat app id. + app_id: 'wx929c548fea6af9c7' #填写自己的 WeChat app id.眠花糖 + # app_id: 'wxeb2688220799e2c5' #填写自己的 WeChat app id.太和e护 debug_logging: false # Logging in debug mode. android: # interrupt_wx_request: true # Defaults to true.