如何防止用户在 Android Crosswalk WebView 中截屏?
How to prevent a user from taking a screenshot in Android Crosswalk WebView?
我试图阻止在 Crosswalk WebView 中截取屏幕截图。我试过了PrivacyScreenPlugin。当我不使用 Crosswalk 插件时,这个插件工作得很好。但是,如果我添加了 Crosswalk 插件,它仅在应用程序启动时有效。
例如,当我启动我的应用程序时,我无法截屏。但是,如果我显示任何其他 UI 组件(例如音量控制等),我的应用程序将开始允许截屏。
我找到了this个相关问题,有人提到如果我使用Crosswalk,我需要修改PrivacyScreenPlugin/Crosswalk。
这是我尝试过的:
在 Crosswalk WebView 插件中,XwalkWebViewEngine#init 方法。
cordova.getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
但是,上面的代码并没有解决我的问题。
而且,我在PrivacyScreenPlugin里面找不到修改的地方。
我正在使用以下 Android 版本和插件:
- Android 5.0.2
- 人行横道插件 1.6.1
- 隐私屏幕插件 0.2.0
如有任何意见,我们将不胜感激。
根据this票。有一个临时解决方法可以避免此问题。
在AndroidManifest.xml中:
替换
android:theme="@android:style/Theme.Black.NoTitleBar"
和
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
这个解决方法对我有用。它基本上深入到 XWalkView 创建的 SurfaceView 并使其安全:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
((SurfaceView)((FrameLayout)((FrameLayout) mXWalkView.getChildAt(0)).getChildAt(0)).getChildAt(0)).setSecure(true);
}
长得丑但工作起来很有魅力。
我试图阻止在 Crosswalk WebView 中截取屏幕截图。我试过了PrivacyScreenPlugin。当我不使用 Crosswalk 插件时,这个插件工作得很好。但是,如果我添加了 Crosswalk 插件,它仅在应用程序启动时有效。
例如,当我启动我的应用程序时,我无法截屏。但是,如果我显示任何其他 UI 组件(例如音量控制等),我的应用程序将开始允许截屏。
我找到了this个相关问题,有人提到如果我使用Crosswalk,我需要修改PrivacyScreenPlugin/Crosswalk。
这是我尝试过的:
在 Crosswalk WebView 插件中,XwalkWebViewEngine#init 方法。
cordova.getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
但是,上面的代码并没有解决我的问题。
而且,我在PrivacyScreenPlugin里面找不到修改的地方。
我正在使用以下 Android 版本和插件:
- Android 5.0.2
- 人行横道插件 1.6.1
- 隐私屏幕插件 0.2.0
如有任何意见,我们将不胜感激。
根据this票。有一个临时解决方法可以避免此问题。
在AndroidManifest.xml中:
替换
android:theme="@android:style/Theme.Black.NoTitleBar"
和
android:theme="@android:style/Theme.Holo.Light.NoActionBar"
这个解决方法对我有用。它基本上深入到 XWalkView 创建的 SurfaceView 并使其安全:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
((SurfaceView)((FrameLayout)((FrameLayout) mXWalkView.getChildAt(0)).getChildAt(0)).getChildAt(0)).setSecure(true);
}
长得丑但工作起来很有魅力。