鸿蒙安全控件之保存控件简介

保存控件是一种特殊的安全控件,它允许用户通过点击按钮临时获取存储权限,而无需通过权限弹框进行授权确认。

集成保存控件后,当用户点击该控件时,应用会获得10秒内访问媒体库特权接口的授权。这适用于任何需要将文件保存到媒体库的应用场景,例如保存图片或视频等。

与需要触发系统应用并由用户选择具体保存路径的Picker不同,保存控件可以直接保存到指定的媒体库路径,使得操作更为便捷。

保存控件效果如图所示。

  • 当用户首次点击应用中的保存控件,系统将弹窗请求用户授权。如果用户点击“取消”,弹窗消失,应用无授权,用户再次点击保存控件时,将会重新弹窗;如果用户点击“允许”,弹窗消失,应用将被授予临时保存权限,此后点击该应用的保存控件将不会弹窗。
  • 应用在onClick()触发回调到调用媒体库特权接口的时间间隔不能大于10秒。
  • 用户点击一次控件,仅获取一次授权调用。
  • 为了保障用户的隐私不被恶意应用获取,应用需确保安全控件是可见的且用户能够识别的。开发者需要合理的配置控件的尺寸、颜色等属性,避免视觉混淆的情况,如果发生因控件的样式不合法导致授权失败的情况,请检查设备错误日志。

以保存对话中图片为例,应用仅需要在前台期间,短暂使用保存图片的特性,不需要长时间使用。此时,可以直接使用安全控件中的保存控件,免去权限申请和权限请求等环节,获得临时授权,保存对应图片。

  1. 导入文件和媒体库依赖。
  1. 设置图片资源,并添加保存控件。保存控件是一种类似于按钮的安全控件,由图标、文本和背景组成。其中,图标和文本至少需要有一个,背景是必选的。图标和文本不能自定义,只能从已有的选项中选择。在声明安全控件的接口时,有传参和不传参两种方式。不传参将默认创建一个包含图标、文字和背景的按钮,传参则根据参数创建,不包含未配置的元素。

Flask 扩展:使用流行插件扩展功能

Flask 是一个用 Python 编写的微型 Web 框架,以简单易用而闻名。虽然 Flask 本身很简约,但其真正的强大之处在于通过丰富的扩展生态系统实现的可扩展性。这些扩展允许开发人员为其应用程序添加各种功能,而无需重新设计轮子。在本博客中,我们将探索一些流行的 Flask 扩展,并提供演示来展示它们如何增强您的 Flask 应用程序。

1. Flask-SQLAlchemy

Flask-SQLAlchemy 简化了 SQLAlchemy(一个强大的 ORM(对象关系映射器))与您的 Flask 应用程序的集成。

之前小编在其他博文中,详细地介绍过这个扩展,详见在 Flask 中使用数据库:SQLAlchemy 集成

2. Flask-Migrate

Flask-Migrate 是一个使用 Alembic 处理 Flask 应用程序的 SQLAlchemy 数据库迁移的扩展。

和之前一样这个扩展,小编也在另一篇文章中详细介绍过,详见在 Flask 中使用数据库:SQLAlchemy 集成

3. Flask-WTF

Flask-WTF 将 Flask 与 WTForms 集成,让您能够轻松构建和验证 Web 表单。

这个扩展小编也曾单独写过博文介绍过它,详见在 Flask 中处理表单和用户输入

4. Flask-Login

Flask-Login 为 Flask 应用程序提供用户会话管理,使其可以轻松处理用户身份验证。

安装

示例

5. Flask-Mail

Flask-Mail 提供了一个简单的界面,用于从 Flask 应用程序设置和发送电子邮件。

安装

示例

6. Flask-Caching

Flask-Caching 为 Flask 应用程序添加了缓存支持,允许您缓存应用程序的各个部分以提高性能。

安装

示例

在此示例中,`index` 路由缓存 60 秒。在 60 秒窗口内对此路由发出的任何请求都将返回缓存的响应。

7. Flask-Admin

Flask-Admin 提供了一个简单的界面,用于为您的 Flask 应用程序创建管理界面。

安装

示例

在此示例中,Flask-Admin 为 `User` 模型创建了一个管理界面,允许您对 User 表执行 CRUD 操作。

8. Flask-Babel

Flask-Babel 为 Flask 应用程序中的国际化 (i18n) 和本地化 (l10n) 提供支持。

安装

示例

在此示例中,Flask-Babel 用于将问候消息翻译成西班牙语。您需要为不同的语言创建翻译文件才能有效使用此扩展。

9. Flask-Limiter

Flask-Limiter 为 Flask 路由提供速率限制,以防止滥用并确保公平使用。

安装

示例

在此示例中,`index` 路由限制为每分钟 2 个请求。该时间范围内的任何其他请求都将导致超出速率限制的响应。

10. Flask-RESTful

Flask-RESTful 简化了 Flask 应用程序中 RESTful API 的创建。

这个扩展也是一样的,之前有博文详细介绍过,详见使用 Flask 创建 RESTful API

以上是一些流行的扩展,下面是一些其他流行的 Flask 扩展的演示,它们可以扩展 Flask 应用程序的功能。

11. Flask-CORS

Flask-CORS 允许您在 Flask 应用程序中启用跨域资源共享 (CORS)。CORS 对于允许您的 Web 应用程序从不同来源请求资源至关重要。

安装

示例

在此示例中,Flask-CORS 用于为应用程序中的所有路由启用 CORS,从而允许从不同来源请求资源。

12. Flask-SocketIO

Flask-SocketIO 使用 WebSockets 实现客户端和服务器之间的实时双向通信。

安装

示例

对于此示例,您需要一个包含 SocketIO 客户端代码的 `index.html` 文件来连接服务器并向服务器发送消息。

13. Flask-Session

Flask-Session 为 Flask 应用程序添加了服务器端会话功能。默认情况下,Flask 将会话存储在客户端的安全 cookie 中。Flask-Session 允许您使用各种后端在服务器端存储会话。

安装

示例

在此示例中,会话数据存储在服务器文件系统上。您可以配置不同的后端,例如 Redis 或 Memcached。

14. Flask-Mailman

Flask-Mailman 是 Flask-Mail 的一个分支,它与 Mailman 电子邮件服务集成,用于从 Flask 应用程序发送电子邮件。

安装

示例

在此示例中,Flask-Mailman 用于通过配置的 SMTP 服务器发送电子邮件。

15. Flask-Bcrypt

Flask-Bcrypt 为 Flask 应用程序中的密码哈希处理提供了 bcrypt 哈希实用程序。

安装

示例

在此示例中,Flask-Bcrypt 用于在注册期间对密码进行哈希处理,并在登录期间验证哈希密码。

Flask 扩展提供了扩展 Flask 应用程序功能的强大方法。在此博客中,我们探索了其他流行的 Flask 扩展,例如 Flask-CORS、Flask-SocketIO、Flask-Session、Flask-Mailman 和 Flask-Bcrypt。这些扩展支持 CORS、实时通信、服务器端会话、电子邮件集成和安全密码哈希处理等功能。

通过利用这些扩展,您可以轻松构建更强大、功能更丰富的应用程序。继续探索 Flask 生态系统,找到更多适合您特定需求的扩展吧。这些扩展可以通过提供强大的功能和简化常见任务来大大增强您的 Flask 应用程序。

请随意探索其他 Flask 扩展,看看它们如何帮助您构建强大且功能丰富的应用程序。祝您编码愉快!

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。