用户截屏事件

my.onUserCaptureScreen(CALLBACK)

说明

mPaaS 10.1.32 及以上版本支持该接口。

此接口用于监听用户发起的主动截屏事件,可以接收到系统以及第三方截屏工具的截屏事件通知。可使用 my.offUserCaptureScreen() 取消监听。

代码示例

<!-- API-DEMO page/API/user-capture-screen/user-capture-screen.axml-->
<view class="page">
  <view class="page-description">用户截屏事件 API</view>
  <view class="page-section">
    <view class="page-section-title">my.onUserCaptureScreen</view>
    <view class="page-section-demo">
      <view>目前状态:{{ condition ? "已经开启监听" : '已经取消监听' }}</view>
      <view a:if="{{condition}}">
        <button type="primary" onTap="offUserCaptureScreen">取消监听屏幕事件</button>
      </view>
      <view a:else>
        <button type="primary" onTap="onUserCaptureScreen">开启监听屏幕事件</button>
      </view>
    </view>
  </view>
</view>
// API-DEMO page/API/user-capture-screen/user-capture-screen.js
Page({
  data: {
    condition: false,
  },
  onReady() {
    my.onUserCaptureScreen(() => {
      my.alert({
        content: '收到用户截图',
      });
    });
  },
  offUserCaptureScreen() {
    my.offUserCaptureScreen();
    this.setData({
      condition: false,
    });
  },
  onUserCaptureScreen() {
    my.onUserCaptureScreen(() => {
      my.alert({
        content: '收到用户截图'
      });
    });
    this.setData({
      condition: true,
    });
  },
});

my.offUserCaptureScreen()

说明

mPaaS 10.1.32 及以上版本支持该接口。

此接口用于取消监听截屏事件。一般需要与 my.onUserCaptureScreen 成对出现。

代码示例

<!-- API-DEMO page/API/user-capture-screen/user-capture-screen.axml-->
<view class="page">
  <view class="page-description">用户截屏事件 API</view>
  <view class="page-section">
    <view class="page-section-title">my.onUserCaptureScreen</view>
    <view class="page-section-demo">
      <view>目前状态:{{ condition ? "已经开启监听" : '已经取消监听' }}</view>
      <view a:if="{{condition}}">
        <button type="primary" onTap="offUserCaptureScreen">取消监听屏幕事件</button>
      </view>
      <view a:else>
        <button type="primary" onTap="onUserCaptureScreen">开启监听屏幕事件</button>
      </view>
    </view>
  </view>
</view>
// API-DEMO page/API/user-capture-screen/user-capture-screen.js
Page({
  data: {
    condition: false,
  },
  onReady() {
    my.onUserCaptureScreen(() => {
      my.alert({
        content: '收到用户截图',
      });
    });
  },
  offUserCaptureScreen() {
    my.offUserCaptureScreen();
    this.setData({
      condition: false,
    });
  },
  onUserCaptureScreen() {
    my.onUserCaptureScreen(() => {
      my.alert({
        content: '收到用户截图'
      });
    });
    this.setData({
      condition: true,
    });
  },
});

是否需要传 callback 值

  • 不传递 callback 值,则会移除监听所有的事件回调。代码示例如下:

    my.offUserCaptureScreen();
  • 传递 callback 值,只移除对应的 callback 事件。代码示例如下:

    my.offUserCaptureScreen(this.callback);