【问题标题】:How disable screenshots in Nativescript mobile application?如何在 Nativescript 移动应用程序中禁用屏幕截图?
【发布时间】:2018-01-31 10:33:55
【问题描述】:

在原生Android应用中禁用screenshors需要添加代码

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

但是如何在 NativeScript 应用程序中使用这个安全选项呢?

【问题讨论】:

    标签: nativescript android-security


    【解决方案1】:

    这个方案是在Nativescript-Vue中完成的,请根据你使用的Nativescript的不同进行调整。

    导入这些:

    import { isAndroid, isIOS, device, screen} from "tns-core-modules/platform";
    const app = require("tns-core-modules/application");
    

    添加 pageLoad 函数以在页面加载时执行代码:

    <Page @loaded="pageLoad">
    

    运行此代码:

    pageLoad: function() {
        if (isAndroid) {
          if (app.android && device.sdkVersion >= '21') {
            const window = app.android.startActivity.getWindow();
            window.setFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE,
                         android.view.WindowManager.LayoutParams.FLAG_SECURE);
          }
        }
    }
    

    我亲自测试,基本上是导入变量,然后在页面加载或创建的页面上运行上面提供的代码。

    这是我在 StackOverflow 上的第一个答案 :)

    【讨论】:

      【解决方案2】:

      首先,如果您还没有使用本机代码,我强烈建议您安装 tns-platform-declarations。它将极大地帮助这个过程。

      设置完成后

      在您为 android 安装和设置之后。

      import { topmost } from 'ui/frame';
      

      如果你不添加 tns 平台声明,那么你可以跳过这个。

      declare const android: any;
      

      然后把这段代码放在合适的地方

      //run this code if only in android application.
      if(topmost().android){
          topmost().android.activity.getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE,android.view.WindowManager.LayoutParams.FLAG_SECURE);
      }
      

      我没有亲自运行过这个程序,所以我不能 100% 确定它会起作用,如果不起作用,它至少应该能让你大部分时间到达那里。

      【讨论】:

      • 大家好,我在 appcomponent.ts 的构造函数中添加了以下代码。但我仍然可以在后台应用程序中看到应用程序屏幕。请建议我应该在哪里使用此代码? app.android.startActivity.getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE, android.view.WindowManager.LayoutParams.FLAG_SECURE);
      猜你喜欢
      • 2022-10-08
      • 1970-01-01
      • 2020-09-10
      • 2021-12-30
      • 2019-02-18
      • 1970-01-01
      • 2021-02-23
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多