open_link_handler.dart 542 Bytes
import 'package:appframe/config/routes.dart';
import 'package:appframe/services/dispatcher.dart';

class OpenLinkHandler extends MessageHandler {
  @override
  Future<bool> handleMessage(params) async {
    if (params is! Map<String, dynamic>) {
      throw Exception('参数错误');
    }

    final String url = params['url'] as String;
    if (url.isEmpty) {
      throw Exception('参数错误');
    }

    return _openLink(url);
  }

  bool _openLink(String url) {
    router.push('/link', extra: {'url': url});
    return true;
  }
}