Flutter TextFiled频繁采集“剪切板信息”

在使用Flutter开发者,输入框是必不可少的功能,最近产品出了需要,要求输入框记住用户登录过的手机号,并在输入框输入时提示出来,这是个很基础的功能,但是在通过测试验收发布到应用市场时,被Vivo拒了,具体报错信息如下:

APP在运行时,SDK存在以下违规行为: 1、未见向用户告知且未经用户同意,f2prateek dart存在频繁采集“剪切板信息”的行为,非服务所必须且无合理应用场景,超出实现产品或服务的业务功能 所必须的最低频率

查看代码后发现就是一个很普通的tetFiled,没有其他特殊的,先做排除

  1. 是否跟焦点有关
  2. 是否需要在组件上做特殊设置

把组件主动获取焦点的 autoFocus 设置为false,提交到VIVO的做隐私合规检测,发现依然没有通过,还是这个问题。没办法去看源码(Flutter3.7.10),发现有一个函数:copySelection

 /// Copy current selection to [Clipboard].
  @override
  void copySelection(SelectionChangedCause cause) {
    final TextSelection selection = textEditingValue.selection;
    assert(selection != null);
    if (selection.isCollapsed || widget.obscureText) {
      return;
    }
    final String text = textEditingValue.text;
    Clipboard.setData(ClipboardData(text: selection.textInside(text)));
    if (cause == SelectionChangedCause.toolbar) {
      bringIntoView(textEditingValue.selection.extent);
      hideToolbar(false);

      switch (defaultTargetPlatform) {
        case TargetPlatform.iOS:
        case TargetPlatform.macOS:
        case TargetPlatform.linux:
        case TargetPlatform.windows:
          break;
        case TargetPlatform.android:
        case TargetPlatform.fuchsia:
          // Collapse the selection and hide the toolbar and handles.
          userUpdateTextEditingValue(
            TextEditingValue(
              text: textEditingValue.text,
              selection: TextSelection.collapsed(offset: textEditingValue.selection.end),
            ),
            SelectionChangedCause.toolbar,
          );
          break;
      }
    }
    clipboardStatus?.update();
  }

源码的注释是将当前内容复制到剪贴板,clipboardStatus是检测剪贴板是否可以粘贴。因为检测结果是“频繁采集剪贴板” 将日志文件下载看了下,确实频率非常高,那是不是跟这个状态被更新有关呢? 抱着试试看的态度,将源码的最后一行注释掉,重新编译打包

//clipboardStatus?.update();

提交到VIVO隐私自检,果然不出所料:检测通过!

 将此问题做个记录,可以帮到后面的同学们
注意:每个项目使用的版本可能不一致,建议优先找这个函数copySelection

相关推荐

  1. Android APP 剪切应用

    2024-07-17 13:36:01       21 阅读
  2. cocosCreator获取手机剪切内容

    2024-07-17 13:36:01       29 阅读
  3. Telegraf--采集指定信息

    2024-07-17 13:36:01       41 阅读
  4. Python 处理剪切内容,加载网址

    2024-07-17 13:36:01       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 13:36:01       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 13:36:01       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 13:36:01       62 阅读
  4. Python语言-面向对象

    2024-07-17 13:36:01       72 阅读

热门阅读

  1. 油管吃播鼻祖被流量吞噬的半生

    2024-07-17 13:36:01       26 阅读
  2. ActiViz实战:ActiViz中的自己实现鼠标双击事件

    2024-07-17 13:36:01       30 阅读
  3. libwebrtc.a+exosip连接fS 环境部署tips

    2024-07-17 13:36:01       22 阅读
  4. NoSql选择题解

    2024-07-17 13:36:01       25 阅读
  5. Qt鼠标拖动线条组成的多边形移动

    2024-07-17 13:36:01       22 阅读