Skip to content

Commit 924f163

Browse files
committed
[macOS] Buat method channel untuk mengecek permission screen recording
Return value dari method tersebut ialah bool.
1 parent f5dd619 commit 924f163

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

lib/core/util/platform_channel_helper.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class PlatformChannelHelper {
1212
final _methodChannelName = 'dipantau/channel';
1313
final _keyInvokeMethodQuitApp = 'quit_app';
1414
final _keyInvokeMethodTakeScreenshot = 'take_screenshot';
15+
final _keyInvokeMethodCheckPermissionScreenRecording = 'check_permission_screen_recording';
1516

1617
// Event channel
1718
final _eventChannelName = 'dipantau/event';
@@ -98,4 +99,14 @@ class PlatformChannelHelper {
9899
Stream startEventChannel() {
99100
return _eventChannel.receiveBroadcastStream();
100101
}
102+
103+
Future<bool?> checkPermissionScreenRecording() async {
104+
try {
105+
final result = await _methodChannel.invokeMethod<bool>(_keyInvokeMethodCheckPermissionScreenRecording);
106+
return result;
107+
} catch (error) {
108+
debugPrint('Error check permission screen recording: $error');
109+
return false;
110+
}
111+
}
101112
}

macos/Runner/AppDelegate.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ class AppDelegate: FlutterAppDelegate, FlutterStreamHandler {
2929
let randomNumber: String = args["random_number"] as! String
3030
let listPathImages = self.takeScreenshots(folderName: path, userId: userId, randomNumber: randomNumber)
3131
result(listPathImages)
32+
} else if ("check_permission_screen_recording" == call.method) {
33+
if CGRequestScreenCaptureAccess() {
34+
result(true)
35+
} else {
36+
result(false)
37+
}
3238
}
3339
})
3440

0 commit comments

Comments
 (0)