From 761d904dbe7f6d4406136b7d6f56dbe002b782d2 Mon Sep 17 00:00:00 2001
From: guoqing <guoqingkuku@163.com>
Date: Tue, 30 Jan 2024 10:32:28 +0800
Subject: [PATCH] =?UTF-8?q?1.=20=E5=A2=9E=E5=8A=A0=E7=94=B3=E8=AF=B7?=
 =?UTF-8?q?=E6=9D=83=E9=99=90=E5=89=8D=E7=9A=84=E6=8F=90=E7=A4=BA=E3=80=82?=
 =?UTF-8?q?2.=20=E4=BD=BF=E7=94=A8=E6=9D=83=E9=99=90=E5=A2=9E=E5=8A=A0?=
 =?UTF-8?q?=E6=9D=83=E9=99=90=E6=A3=80=E6=B5=8B=E7=94=B3=E8=AF=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/widget/complaint_web_view.dart  | 32 +++++++++++++++++++++++++++++
 lib/widget/select_image_dialog.dart |  3 +++
 2 files changed, 35 insertions(+)

diff --git a/lib/widget/complaint_web_view.dart b/lib/widget/complaint_web_view.dart
index ee66ba4..2fdce94 100644
--- a/lib/widget/complaint_web_view.dart
+++ b/lib/widget/complaint_web_view.dart
@@ -138,6 +138,28 @@ class _ComplaintWebPageState extends State<ComplaintWebPage> {
 
   /// 閫夋嫨鍥剧墖搴曢儴寮规
   Future<List<String>> _showImagePicker(context) async {
+    if (!await _checkPermission()) {
+      //瀵硅瘽妗嗚鏄庝娇鐢ㄧ浉鏈虹殑鐩殑
+      showDialog(
+          context: context,
+          builder: (context) => AlertDialog(
+                title: const Text("娓╅Θ鎻愮ず"),
+                content: const Text("闇€瑕佷娇鐢ㄧ浉鏈烘潈闄愶紝鐢ㄤ簬鎷嶆憚鍙嶉闂鍥剧墖"),
+                actions: <Widget>[
+                  TextButton(
+                    child: const Text("鍙栨秷"),
+                    onPressed: () => Navigator.pop(context),
+                  ),
+                  TextButton(
+                    child: const Text("纭畾"),
+                    onPressed: () async {
+                      Navigator.pop(context);
+                    },
+                  ),
+                ],
+              ));
+    }
+
     ImageSource? source;
     await showModalBottomSheet(
       backgroundColor: Colors.transparent,
@@ -189,6 +211,16 @@ class _ComplaintWebPageState extends State<ComplaintWebPage> {
     }
   }
 
+  /// 妫€娴嬫槸鍚︽湁鏉冮檺
+  Future<bool> _checkPermission() async {
+    final permissions = await Permission.camera.status;
+    if (permissions.isGranted) {
+      return true;
+    } else {
+      return false;
+    }
+  }
+
   /// 缃戦〉鍔犺浇瀹屾垚
   void _onPageFinished(String url) async {
     _title = await _webViewController.getTitle();
diff --git a/lib/widget/select_image_dialog.dart b/lib/widget/select_image_dialog.dart
index e6f0921..04c19ab 100644
--- a/lib/widget/select_image_dialog.dart
+++ b/lib/widget/select_image_dialog.dart
@@ -88,6 +88,9 @@ class SelectImageDialog extends StatelessWidget {
           break;
       }
     } else {
+      if (!await _requestPermissionCam()) {
+        return;
+      }
       await _callbackImage(source, onSuccess);
     }
   }
-- 
2.17.1