sys_album_handler.dart 952 Bytes
import 'dart:io';

import 'package:android_intent_plus/android_intent.dart';
import 'package:appframe/services/dispatcher.dart';

/// sysAlbum 指令处理类
///
/// 打开系统相册应用,仅 Android 平台生效。
/// 无需参数,H5 调用示例:{ "cmd": "sysAlbum" }
class SysAlbumHandler extends MessageHandler {
  @override
  Future<dynamic> handleMessage(params) async {
    if (!Platform.isAndroid) {
      return false;
    }

    // 使用 ACTION_MAIN + CATEGORY_APP_GALLERY 打开系统图库应用
    // 等同于点击桌面图库图标
    // FLAG_ACTIVITY_NEW_TASK (0x10000000) 让图库在独立任务栈中打开,
    // Flutter APP 保留在自己的任务栈,用户通过最近任务键可切回
    const intent = AndroidIntent(
      action: 'android.intent.action.MAIN',
      category: 'android.intent.category.APP_GALLERY',
      flags: <int>[0x10000000],
    );
    await intent.launch();
    return true;
  }
}