鸿蒙开发Ability Kit(程序访问控制):【使用粘贴控件】

使用粘贴控件

粘贴控件是一种特殊的系统安全控件,它允许应用在用户的授权下无提示地读取剪贴板数据。

在应用集成粘贴控件后,用户点击该控件,应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景,避免弹窗提示对用户造成干扰。

例如,用户在应用外(如短信)复制了验证码,要在应用内粘贴验证码。用户原来在进入应用后,还需要长按输入框、在弹出的选项中点击粘贴,才能完成输入。而使用粘贴控件,用户只需进入应用后直接点击粘贴按钮,即可一步到位。

粘贴控件效果如图所示。

zh-cn_image_0000001760763261

约束与限制

  • 剪贴板读取的临时授权将持续到新的数据被写入剪贴板为止(例如用户复制了新的数据)。
  • 临时授权会持续到灭屏、应用切后台、应用退出情况发生。
  • 应用在授权期间没有调用次数限制。
  • 为了保障用户的隐私不被恶意应用获取,应用需确保安全控件是可见的且用户能够识别的。开发者需要合理的配置控件的尺寸、颜色等属性,避免视觉混淆的情况,如果发生因控件的样式不合法导致授权失败的情况,请检查设备错误日志。

开发步骤

以简化用户填写验证码为例,参考以下步骤,实现效果:点击控件获取临时授权,粘贴内容到文本框,效果图请见上文。

  1. 导入剪贴板依赖。

    import { pasteboard } from '@kit.BasicServicesKit';
    
  2. 添加输入框和粘贴控件。

    粘贴控件是由图标、文本、背景组成的类似Button的按钮,其中图标、文本两者至少有其一,背景可选。图标和文本不支持自定义,仅支持在已有的选项中选择。

    应用申明安全控件的接口时,分为传参和不传参两种,不传参默认创建图标+文字+背景的按钮,传参根据传入的参数创建,不包含没有配置的元素。

    当前示例使用默认参数。具体请参见[PasteButton控件]。此外,所有安全控件都继承[安全控件通用属性]),可用于定制样式。

    import { pasteboard, BusinessError } from '@kit.BasicServicesKit';@Entry
    @Component
    struct Index {@State message: string = '';build() {Row() {Column({ space: 10 }) {TextInput({ placeholder: '请输入验证码', text: this.message })PasteButton().onClick((event: ClickEvent, result: PasteButtonOnClickResult) => {if (PasteButtonOnClickResult.SUCCESS === result) {pasteboard.getSystemPasteboard().getData((err: BusinessError, pasteData: pasteboard.PasteData) => {if (err) {console.error(`Failed to get paste data. Code is ${err.code}, message is ${err.message}`);return;}// 剪贴板内容为 '123456'this.message = pasteData.getPrimaryText();});}})}.width('100%')}.height('100%')}
    }
    

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/39432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android中的适配器,你知道是做什么的吗?

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD,日常还会涉及Android开发工作。 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起…

时间复利效应才是人生的催化剂

在追求成功的道路上,许多人都在寻找捷径。然而,真正的捷径并非不劳而获的幻想,而是通过长期坚持在某一领域深耕细作,享受时间复利效应带来的巨大收益。本文将探讨如何选择合适的领域并长期坚持下去,以实现成功。 时间…

DpEasy社区版1.4.1 | 针对托管账号进行功能完善

DpEasy 数据库特权账号管理平台社区版 1.4.1 已上线! 本次版本,主要针对托管账号做了新增功能和部分优化。具体如下: | 支持密码纠正 当出现 DpEasy 平台上的托管账号密码与实际账号密码不一致的情况,可以通过「密码纠正」进行…

如何养成爱自己的习惯:吸引世间美好,改变命运

在这个快节奏、高压力的时代,我们常常被各种事务所困扰,内心难以得到真正的宁静。然而,古老的智慧告诉我们,“静”是宇宙万物的根源,是生命恢复的根本。本文将探讨如何养成“静”的习惯,从而吸引世间美好&a…

Elasticsearch集群部署(上)

目录 前言 一. 环境准备 二. 实施部署 三. 安装配置head监控插件 (只在第一台es部署) 四. Kibana部署(当前还是在第一台es部署) 五. 安装配置Nginx反向代理 六. Logstash部署与测试 前言 1. Elasticsearch: 是…

邦芒支招:职场上令你升职加薪的四个能力

身在职场,我们都想升职加薪,获得成功,但是真正能达到的凤毛麟角,我常常告诉我的下属,想要升职你最少要必备的四个能力,小邦跟大家分享一些经验。 1、明确需要,制定目标,让领导知道你…

智慧公厕系统改变了人们对服务区公厕的看法

在过去,服务区公厕常常给人留下脏乱差的印象,成为人们在长途旅行途中不愿停留的地方。然而,随着智慧科技的不断发展和应用,智慧公厕系统的出现改变了人们对服务区公厕的看法,为公共卫生设施的提升注入了新的活力。 一、…

YOLOv8-对注意力机制模型进行通道剪枝-同时实现涨点和轻量化【附代码】

文章目录 前言视频效果文章概述必要环境一、训练自己的模型1、 训练命令2、 训练参数解析 二、模型剪枝1、 对训练好的模型将进行剪枝2、 剪枝代码详解1.解析命令行参数2. 定义剪枝函数3. 定义剪枝结构4. 更新注意力机制5. 保存更新后的模型6. 主函数 三、剪枝后的训练运行命令…

【日常记录】【JS】动态执行JS脚本

文章目录 1、第一种方式:eval2、第二种方式:setTimeout3、第三种方式:创建script 标签插入body4、第四种方式:创建 Function5、对比6、 参考链接 1、第一种方式:eval 语法 eval(string)参数 string:一个…

获取目标机器的ssh反弹权限后,如何通过一台公网服务器的服务 jar 包进行偷梁换柱植入目录进行钓鱼,从而获取目标使用人的终端设备权限和个人信息?

网络攻防实战中获取目标机器的ssh反弹权限后,如何通过一台公网服务器的服务 jar 包进行偷梁换柱植入目录进行钓鱼,从而获取目标使用人的终端设备权限和个人信息? 具体流程如下: 1)获取了目标用户经常访问的一台服务器信息,并能反弹shell回来进行远程ssh链接; 2)分析…

CenteOs7上安装Redis

CenteOs7上安装Redis 安装前先检查安装环境开始安装下载fedora的 epel 仓库安装redis数据库启动与检查状态命令启动redis停止redis查看redis运行状态查看redis进程 设置开机启动修改配置如果你觉得麻烦,使用一下配置录入以下内容 最后请放开端口允许连接 参考文章 安…

python获取字符编码

在Python中,您可以使用内置的ord()函数获取单个字符的Unicode编码,使用encode()方法获取字符串的字节编码。 获取单个字符的Unicode编码: char a unicode_code ord(char) print(unicode_code) # 输出字符的Unicode编码 获取字符串的字节编码: tex…

Linux指定文件权限的两种方式-符号与八进制数方式示例

一、指定文件权限可用的两种方式: 对于八进制数指定的方式,文件权限字符代表的有效位设为‘1’,即“rw-”、“rw-”、“r--”,以二进制表示为“110”、“110”、“100”,再转换为八进制6、6、4,所以777代表…

Android 11.0 SettingsProvider 源码分析

文章目录 一、SettingsProvider 的概述二、SettingsProvider 的启动流程三、对 SettingsProvider 进行操作方法四、客制化示例 一、SettingsProvider 的概述 SettingsProvider 是一个为 Android 系统设置提供数据共享的 Provider,它包含全局、安全和系统级别的用户…

kafka集群单独开启kerberos详细步骤

Kafka 2.8新特性 可以不使用zk。使用自我管理的仲裁机制。 增加describe集群的API。 支持SASL、SSL双向TLS身份认证。 根据IP,限制broker connection的创建速率。 JDK 1.8 zookeeper(可以使用DP的zk,但需指定zk的namespace,避免跟…

配置WLAN 示例

规格 仅AR129CVW、AR129CGVW-L、AR109W、AR109GW-L、AR161W、AR161EW、AR161FGW-L、AR161FW、AR169FVW、AR169JFVW-4B4S、AR169JFVW-2S、AR169EGW-L、AR169EW、AR169FGW-L、AR169W-P-M9、AR1220EVW和AR301W支持WLAN-FAT AP功能。 组网需求 如图1所示,企业使用WLAN…

【拓展】理解AppID、OpenID、UnionID

目录 历史背景AppIDAppSecretOpenIDUnionID三者区别使用方法AppIDOpenID/**UnionID**拓展 历史背景 基本概念介绍 | 微信开放文档 微信小程序:一文彻底搞懂openid和unionid-腾讯云开发者社区-腾讯云 用户进行小程序登陆时,需要获取用户信息,…

通用的ERP系统功能清单有哪些?

一、通用的ERP系统功能清单 通用的ERP(Enterprise Resource Planning,企业资源计划)系统是一套集成的业务应用程序,旨在帮助企业有效管理财务、销售、运营等关键业务流程。以下是一个清晰的ERP系统功能清单,涵盖了其主…

类和对象-友元-友元类

友元类 #include<iostream> #include<string> using namespace std;// 前向声明 class Building;class GoodGay { public:GoodGay();void visit(); // 访问函数&#xff0c;访问Building中的属性private:Building * building; // 指向Building的指针 };class Bui…

【Flutter】列表流畅性优化

前言 在日常APP的开发中&#xff0c;列表是使用频率最高的&#xff0c;这里讲述在Flutter中优化列表的滑动速度与流畅度&#xff0c;以来提高用户的体验。 方案 1、使用ListView.builder代替ListView ListView.builder在创建列表的时候要比ListView更高效&#xff0c;因为L…