📌 Screenshot 截屏监听

SunSeekerX ... 2021-8-6 大约 3 分钟

# 📌 Screenshot 截屏监听

# 简介

插件市场的文档解析有问题!方法名都解析出问题!查看在线文档:https://doc.yoouu.cn/front-end/uni-app/nativeplugins/screenshot-listen/ (opens new window)

监听系统截屏事件,返回截图图片路径。

更多插件:https://doc.yoouu.cn/front-end/uni-app-nativeplugins/ (opens new window)

# 平台兼容性

Android iOS
4.4 - 11.0 9 - 14

# 使用示例

const superModuleScreenshotListen = uni.requireNativePlugin('Super-Module-ScreenshotListen')

// 开始监听屏幕截图事件
onStartListenScreenshot() {
  safeRunning('onStartListenScreenshot', () => {
    const res = superModuleScreenshotListen.onStartListenScreenshot((result) => {
      toast('屏幕截图事件', result)
    })
    toast('onStartListenScreenshot', res)
  })
}

// 停止监听屏幕截图事件
onStopListenScreenshot() {
  safeRunning('onStopListenScreenshot', () => {
    const res = superModuleScreenshotListen.onStopListenScreenshot()
    toast('onStopListenScreenshot', res)
  })
}

/**
 * Toast 提示
 */
const toast = (title, val) => {
  try {
    if (typeof val === 'object') {
      val = JSON.stringify(val)
    } else {
      val = String(val)
    }
  } catch (e) {
    val = e.message
  } finally {
    uni.showToast({
      icon: 'none',
      title: `${title}: ${val}`,
      duration: 3000,
    })
  }
}

/**
 * 安全运行
 */
const safeRunning = (name, fun) => {
  try {
    fun()
  } catch (e) {
    toast(name, e.message)
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

# 模块方法

# onStartListenScreenshot([callback]) : result

启动截屏监听。

  • callback <Function> 结果回调

    回调结果

    • success <Boolean> 操作是否成功

    • code <Number> 状态码

      • 200 屏幕截图成功
      • 500 查询出错(仅安卓)
    • msg <String> 请求信息

    • data <Object> 请求成功返回数据

      • imgPath <String> | <null> 图片绝对路径,仅安卓!

        在 Android 11 之后可能无法查询出来!目前在 miui 12.5 Android 11 是可以查询出来的。

    • err <String> 错误信息(仅安卓)

  • result <Object> 执行返回信息

    • success <Boolean> 操作是否成功
    • code <Number> 状态码
      • 200 操作成功
      • 400 禁止重复添加截屏事件
    • msg <String> 请求信息

# onStopListenScreenshot() : result

关闭截屏监听。

  • result <Object>执行返回信息
    • success <Boolean> 操作是否成功
    • code <Number> 状态码
      • 200 停止监听截屏成功
      • 400 未监听截屏事件
    • msg <String> 请求信息

# 全局事件

# onScreenshot

截屏之后触发。

  • success <Boolean> 操作是否成功

  • code <Number> 状态码

    • 200 屏幕截图成功
    • 500 查询出错(仅安卓)
  • msg <String> 请求信息

  • data <Object> 请求成功返回数据

    • imgPath <String> | <null> 图片绝对路径,仅安卓!

      在 Android 11 之后可能无法查询出来!目前在 miui 12.5 Android 11 是可以查询出来的。

  • err <String> 错误信息(仅安卓)

# 权限列表

ios

Android

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="28" />
  <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
1
2
3
4
5

# 演示截图

Ios

screenshot-listen-ios-screenshot

Android

screenshot-listen-android-screenshot

# 更新日志

# 1.0.2

功能(Features)

Bug 修复 (Bug Fixes)

  1. 【重要】ios 修复截屏之后会造成卡顿的问题,在 ios 不返回截屏图片路径
  2. 修复安卓截屏插件重复触发截屏事件

# 1.0.1

功能(Features)

  1. 更新插件权限说明

Bug 修复 (Bug Fixes)

# 1.0.0

功能(Features)

  1. 完成开发。

Bug 修复 (Bug Fixes)

# 问题反馈

虽然插件已经经过开发者测试和使用,但不排除某些场景下产生问题的可能性,如遇到 Bug 可以在评论区留言,或添加 QQ: 1647800606 进行反馈。

上次编辑于: 2021年8月19日 07:47