다른 앱 위에 플로팅 위젯 표시
다른 앱 위에도 항상 표시되는 플로팅 위젯입니다. Facebook Messenger의 채팅 버블처럼 어떤 앱을 사용하든 항상 접근 가능합니다.
pubspec.yaml:
dependencies:
flutter_overlay_window: ^0.4.6
설치:
flutter pub get
android/app/src/main/AndroidManifest.xml:
<manifest>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application>
<service
android:name="flutter_overlay_window.OverlayService"
android:exported="false"/>
</application>
</manifest>
final status = await FlutterOverlayWindow.isPermissionGranted();
if (!status) {
await FlutterOverlayWindow.requestPermission();
}
await FlutterOverlayWindow.showOverlay(
height: 100,
width: 100,
alignment: OverlayAlignment.centerRight,
enableDrag: true,
);
await FlutterOverlayWindow.closeOverlay();
FlutterOverlayWindow.showOverlay(
height: 60,
width: 60,
alignment: OverlayAlignment.centerRight,
);
FlutterOverlayWindow.showOverlay(
height: 50,
width: WindowSize.matchParent,
alignment: OverlayAlignment.topCenter,
);
// Vue
await bridge.showOverlay({
type: 'floating_button',
position: 'right'
});
await bridge.hideOverlay();
case 'SHOW_OVERLAY':
await FlutterOverlayWindow.showOverlay(...);
break;
case 'HIDE_OVERLAY':
await FlutterOverlayWindow.closeOverlay();
break;
await FlutterOverlayWindow.shareData({
'type': 'steps',
'value': 5000
});
FlutterOverlayWindow.overlayListener.listen((data) {
setState(() {
steps = data['value'];
});
});
OverlayAlignment.topLeftOverlayAlignment.topCenterOverlayAlignment.topRightOverlayAlignment.centerLeftOverlayAlignment.centerOverlayAlignment.centerRightOverlayAlignment.bottomLeftOverlayAlignment.bottomCenterOverlayAlignment.bottomRightheight: 100, // 고정 크기
width: WindowSize.matchParent, // 화면 너비 가득
width: WindowSize.wrapContent, // 내용에 맞게
⚠️ Android 전용 기능입니다
iOS에서는 자체 앱 내 오버레이만 가능합니다