screen_handler.dart
818 Bytes
import 'package:appframe/services/dispatcher.dart';
import 'package:flutter/services.dart' hide MessageHandler;
class ScreenHandler extends MessageHandler {
@override
Future<dynamic> handleMessage(dynamic params) async {
if (params is! Map<String, dynamic>) {
throw Exception('参数错误');
}
int type = params['type'];
_setOrientation(type);
return true;
}
void _setOrientation(int screenType) {
if (screenType == 2) {
// 横屏模式
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeLeft,
DeviceOrientation.landscapeRight,
]);
} else {
// 竖屏模式(默认)
SystemChrome.setPreferredOrientations([
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
}
}
}