我正试图阻止在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版本和插件:
任何评论都将不胜感激。
答案 0 :(得分:2)
根据a CheckDependencies()
method in CefSharp.dll
票。有一个临时的解决方法可以避免这个问题。
在AndroidManifest.xml中:
替换
机器人:主题=" @android:风格/ Theme.Black.NoTitleBar"
带
机器人:主题=" @android:风格/ Theme.Holo.Light.NoActionBar"
答案 1 :(得分:0)
这个解决方法对我有用。它基本上挖掘了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);
}
看起来很丑,但却像魅力一样。