diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ca4cd91..527a523e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/lang/zh-CN/ ### Fixed - 修复搜索位置无法显示的问题 +- 捕获解码异常并修复在网页无法打开物品管理主页的问题 ## [0.9.7] - 2024-02-05 diff --git a/lib/storage/view/home_page.dart b/lib/storage/view/home_page.dart index 64b13db3..8cefa376 100644 --- a/lib/storage/view/home_page.dart +++ b/lib/storage/view/home_page.dart @@ -50,8 +50,8 @@ class StorageHomeScreen extends StatelessWidget { return MyHomePage( activeTab: AppTab.storage, actions: [ - // 仅支持安卓和网页 - if (Platform.isAndroid || kIsWeb) const ScanQRIconButton(), + // 仅支持网页和安卓 + if (kIsWeb || Platform.isAndroid) const ScanQRIconButton(), const SearchIconButton(), ], floatingActionButton: FloatingActionButton( diff --git a/lib/storage/view/widgets/scan_qr_icon_button.dart b/lib/storage/view/widgets/scan_qr_icon_button.dart index 2031c57e..5308e00f 100644 --- a/lib/storage/view/widgets/scan_qr_icon_button.dart +++ b/lib/storage/view/widgets/scan_qr_icon_button.dart @@ -166,7 +166,11 @@ class _ScanQRPageState extends State { bool validateStorageId(String id) { Codec stringToBase64 = utf8.fuse(base64); - final decoded = stringToBase64.decode(id); - return decoded.startsWith('Storage:'); + try { + final decoded = stringToBase64.decode(id); + return decoded.startsWith('Storage:'); + } catch (e) { + return false; + } } }