{"id":658,"date":"2023-03-07T21:05:41","date_gmt":"2023-03-07T13:05:41","guid":{"rendered":"http:\/\/gjweb.top\/?p=658"},"modified":"2023-07-31T21:12:30","modified_gmt":"2023-07-31T13:12:30","slug":"flutter-%e6%89%ab%e7%a0%81","status":"publish","type":"post","link":"https:\/\/gjweb.top\/?p=658","title":{"rendered":"flutter \u626b\u7801 &#038; \u751f\u6210\u4e8c\u7ef4\u7801"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"flutter-\u626b\u7801\">flutter \u626b\u7801<\/h2>\n\n\n\n<p>\u5b9e\u73b0 flutter \u626b\u7801\u529f\u80fd\u53ef\u4ee5\u501f\u52a9\u7b2c\u4e09\u65b9 flutter_easy_permission \u5b9e\u73b0\uff0c\u8be5\u7ec4\u4ef6\u57fa\u4e8e\u534e\u4e3a\u5f00\u53d1\u7684 flutter-scankit \u7ec4\u4ef6\u7684\u4e8c\u6b21\u5c01\u88c5\uff0c \u534e\u4e3a\u9488\u5bf9 flutter-scankit \u7ec4\u4ef6\u7684\u626b\u4e00\u626b\u529f\u80fd\u8fdb\u884c\u8bc6\u522b\u4f18\u5316\u3002\u53ef\u5feb\u901f\u8bc6\u522b\u590d\u6742\u73af\u5883\u4e0b\u7684\u6761\u7801\u8bc6\u522b\uff0c\u7ec4\u4ef6\u5728 flutter 3.0 \u4e2d\u9a8c\u8bc1\u53ef\u4ee5\u4f7f\u7528<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u5b89\u88c5\u63d2\u4ef6\">\u5b89\u88c5\u63d2\u4ef6<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>flutter_easy_permission: ^1.1.2<br>flutter_scankit: ^1.2.4<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u5b89\u5353\u914d\u7f6e\u6743\u9650\">\u5b89\u5353\u914d\u7f6e\u6743\u9650<\/h3>\n\n\n\n<p>\u5728 android \/ app \/ src \/ main \/ AndroidManifest.xml<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"\/>\r\n&lt;uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"\/>\r\n&lt;uses-permission android:name=\"android.permission.CAMERA\"\/><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u5728\u6587\u4ef6\u4e2d\u4f7f\u7528\">\u5728\u6587\u4ef6\u4e2d\u4f7f\u7528<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>import 'package:flutter\/services.dart';\r\nimport 'package:flutter_easy_permission\/constants.dart';\r\nimport 'package:flutter_easy_permission\/easy_permissions.dart';\r\nimport 'package:flutter_scankit\/flutter_scankit.dart';\r\n\r\nclass HomeController extends GetxController {\r\n  \/* \u5b9e\u4f8b\u5316\u626b\u7801\u53d8\u91cf *\/\r\n  late FlutterScankit scanKit;\r\n  \/**\u626b\u4e00\u626b\u76f8\u5173\u914d\u7f6e *\/\r\n  \/* \u76f8\u673a\u548c\u5916\u90e8\u5b58\u50a8\u6743\u9650(\u83b7\u53d6\u5b89\u5353\u6743\u9650) *\/\r\n  final permissions = const &#91;\r\n    Permissions.READ_EXTERNAL_STORAGE,\r\n    Permissions.CAMERA\r\n  ];\r\n  \/* \u76f8\u673a\u548c\u5916\u90e8\u5b58\u50a8\u6743\u9650(\u83b7\u53d6iod\u6743\u9650) *\/\r\n  final permissionGroup = const &#91;\r\n    PermissionGroup.Camera,\r\n    PermissionGroup.Photos\r\n  ];\r\n    \r\n  @override\r\n  void onInit() {\r\n    super.onInit();\r\n    \/*\u76d1\u542c\u626b\u63cf\u7ed3\u679c*\/\r\n    scanKit = FlutterScankit();\r\n    scanKit.addResultListen((val) {\r\n      print(val);\r\n    });\r\n  }\r\n    \r\n  \/*\u626b\u4e00\u626b*\/\r\n  searchCodeFn() async{\r\n      if (!await FlutterEasyPermission.has(perms: permissions,permsGroup:permissionGroup)) {\r\n          FlutterEasyPermission.request(perms:permissions,permsGroup:permissionGroup);\r\n      } else {\r\n          try {\r\n              await scanKit.startScan(scanTypes: &#91;ScanTypes.ALL]);\r\n          } on PlatformException {\r\n              print(\"\u626b\u4e00\u626b\u51fa\u9519\")\r\n          }\r\n      }\r\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u751f\u6210\u4e8c\u7ef4\u7801\">\u751f\u6210\u4e8c\u7ef4\u7801<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u5b89\u88c5\u63d2\u4ef6-1\">\u5b89\u88c5\u63d2\u4ef6<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>qr_flutter: ^4.1.0<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u4f7f\u7528\">\u4f7f\u7528<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import 'package:qr_flutter\/qr_flutter.dart';\r\nQrImageView(\r\n    data: '123456789', \/*\u751f\u6210\u7801\u7684\u5185\u5bb9*\/\r\n    version: QrVersions.auto,\r\n    padding:EdgeInsets.zero,\/*\u5185\u8fb9\u8ddd*\/\r\n    size: 400.0, \/*\u4e8c\u7ef4\u7801\u5c3a\u5bf8*\/\r\n    gapless: false,\r\n    eyeStyle:const QrEyeStyle(eyeShape: QrEyeShape.square, color: MyTheme.themeColor),\/*\u5927\u8272\u5757\u7684\u989c\u8272\u53ca\u6837\u5f0f(\u53ef\u4ee5\u662f\u5706\u5f62\u548c\u65b9\u5f62)*\/\r\n    dataModuleStyle:const QrDataModuleStyle(dataModuleShape:QrDataModuleShape.square, color: MyTheme.themeColor),\/*\u5c0f\u8272\u5757\u7684\u989c\u8272\u53ca\u6837\u5f0f(\u53ef\u4ee5\u662f\u5706\u5f62\u548c\u65b9\u5f62)*\/\r\n)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>flutter \u626b\u7801 \u5b9e\u73b0 flutter \u626b\u7801\u529f\u80fd\u53ef\u4ee5\u501f\u52a9\u7b2c\u4e09\u65b9 flutter_easy_permissi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[],"class_list":["post-658","post","type-post","status-publish","format-standard","hentry","category-flutter"],"_links":{"self":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=658"}],"version-history":[{"count":2,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":794,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions\/794"}],"wp:attachment":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}