如何在flutter中仅在一页上阻止屏幕截图?

tim*_*ims 5 dart flutter

我想知道如何仅在一页上阻止颤振中的屏幕截图。我读到有一种方法可以阻止颤振应用程序中的屏幕截图,getWindow().addFlags(LayoutParams.FLAG_SECURE);方法是:但我的理解是,当我这样做时,屏幕截图会在整个应用程序中被阻止。

所以我的问题是,有没有办法在androidIOS的 flutter 应用程序中仅阻止一个页面上的屏幕截图。在所有其他页面上,屏幕截图应该仍然是可能的。如果有人知道解决方案,请与我分享,因为我找不到任何解决方案。

tim*_*ims 2

为了回答我自己的问题,我找到了一种实现我想要的目标的方法。使用包:flutter_windowmanager您可以添加标志并删除标志。\n所以这非常简单,我所要做的就是添加以下内容:

\n

\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0

\n
Future<void> secureScreen() async {\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 await FlutterWindowManager.addFlags(FlutterWindowManager.FLAG_SECURE);\n\xc2\xa0 \xc2\xa0 \xc2\xa0   }\n
Run Code Online (Sandbox Code Playgroud)\n

initState我想要防止屏幕截图的页面的。然后将其添加到页面的 dispose 方法中:

\n

\xc2\xa0 \xc2\xa0

\n
Future<void> clearSecureScreen() async {\n\xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 await FlutterWindowManager.clearFlags(FlutterWindowManager.FLAG_SECURE);\n\xc2\xa0 \xc2\xa0 \xc2\xa0 }\n
Run Code Online (Sandbox Code Playgroud)\n

重要的是,将该页面从堆栈中删除,否则不会调用 dispose,但我认为大多数人已经知道这一点。

\n

现在我们实现了所需的行为,据我所知,现在不可能以任何方式进行屏幕截图、屏幕录制。

\n

我希望我的帖子可以帮助别人!

\n