2016-05-03 1 views
2

私はCrosswalk WebViewでスクリーンショットを撮ることを防止しようとしています。私はPrivacyScreenPluginを試しました。このプラグインは、Crosswalkプラグインを使用していないときにとてもうまく動作します。ただし、Crosswalkプラグインを追加した場合、アプリ起動時にのみ動作します。
たとえば、アプリを起動すると、スクリーンショットを撮ることができません。しかし、他のUIコンポーネント(音量コントロールなど)を表示すると、私のアプリはスクリーンショットを撮ることができます。Android Crosswalk WebViewでスクリーンショットを撮るのを防ぐ方法を教えてください。

私はthisを見つけました。私がCrosswalkを使用する場合は、PrivacyScreenPlugin/Crosswalkを変更する必要があります。

これは私が試したものです:
Crosswalk WebViewプラグインでは、XwalkWebViewEngine#initメソッド。

cordova.getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE); 

ただし、上記のコードでは問題が解決されませんでした。
そして、私はPrivacyScreenPluginで修正する場所を見つけることができませんでした。

私は、次のAndroidのバージョンとプラグインの使用しています:1.6.1

  • PrivacyScreenPlugin 0.2.0
  • プラグインのAndroid 5.0.2

  • 横断歩道はまだコメントがいただければ幸いです

    • を。

  • 答えて

    2

    thisチケットによると、この問題を回避するための一時的な回避策があります。 AndroidManifest.xmlで


    アンドロイド置き換え:テーマ= "@アンドロイド:スタイル/ Theme.Black.NoTitleBar"

    アンドロイド:テーマを= "@アンドロイド:style/Theme.Holo.Light.NoActionBar"

    +1

    悲しいことに、Crosswalkチームは解決策「Will not Fix」で「解決済み」とマークしていますので、回避策はそれほど一時的ではありません:-(でも、少なくともこの解決策はまだCrosswalk 22として動作します。 – rob3c

    +0

    Crosswalkはバージョン23以降は保守されていないため、スクリーンショットを防止するための唯一の回避策となっています。 – Fugue

    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); 
    } 
    

    醜いが、魅力的に見えます。

    関連する問題