DEV Community

SameX
SameX

Posted on

鸿蒙输入法安全模式:基础模式与完整体验模式的开发要点

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。
主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。
本文为原创内容,任何形式的转载必须注明出处及原作者。

在移动互联网时代,输入法应用承载着用户大量的个人信息,例如密码、信用卡号、通讯录等。因此,输入法应用的安全性至关重要。HarmonyOS 的 IME Kit 为开发者提供了输入法安全模式功能,旨在保护用户数据安全,并确保输入法应用的合规性。本文将深入探讨 HarmonyOS 输入法安全模式,带你了解如何构建安全可靠的输入法应用,让用户安心输入。

安全模式:基础模式与完整体验模式

HarmonyOS 输入法安全模式包含两种模式:

  • 基础模式: 在基础模式下,输入法扩展无法调用任何可能涉及访问或泄露用户隐私数据的系统能力,例如网络、短信、电话、麦克风、定位等。这种模式适用于对安全性要求较高的场景,例如金融支付、敏感信息输入等。
  • 完整体验模式: 在完整体验模式下,输入法扩展不受基础模式相关限制,可以调用所有系统 API,例如网络、录音、蓝牙等。这种模式适用于对用户体验要求较高的场景,例如语音输入、图片输入等。 两种模式的主要区别
功能 基础模式 完整体验模式
网络访问 不可用 可用
录音 不可用 可用
蓝牙 不可用 可用
读取联系人 不可用 可用
发送短信 不可用 可用
... ... ...

开发者如何应对?

作为开发者,我们需要根据应用场景和用户需求选择合适的模式,并进行相应的开发调整:
1. 基础模式下的开发约束
在基础模式下,开发者需要调整内部功能的呈现情况,以避免出现功能不可用的情况。例如,如果输入法应用需要使用网络功能进行云端词库更新,那么在基础模式下,就需要考虑使用本地词库,或者引导用户切换到完整体验模式。
2. 完整体验模式的开放能力
在完整体验模式下,开发者可以使用所有系统 API,实现更丰富的用户体验。例如,开发者可以使用网络 API 进行云端词库更新,使用录音 API 实现语音输入功能,使用蓝牙 API 实现键盘连接等。
3. 如何切换安全模式
用户可以在设置应用中切换输入法安全模式。开发者也可以在应用中提供安全模式切换功能,方便用户选择合适的模式。
示例代码:切换安全模式

import { inputMethod } from '@kit.IMEKit';
export class KeyboardController {
    async switchSecurityMode() {
        let securityMode = await inputMethod.getSecurityMode(); // 获取当前安全模式
        if (securityMode === inputMethod.SecurityMode.BASIC) {
            // 切换到完整体验模式
            await inputMethod.setSecurityMode(inputMethod.SecurityMode.FULL);
        } else {
            // 切换到基础模式
            await inputMethod.setSecurityMode(inputMethod.SecurityMode.BASIC);
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

安全模式的意义

输入法安全模式的推出,不仅保护了用户的隐私安全,也提高了输入法应用的合规性。开发者应该积极拥抱安全模式,并根据用户需求选择合适的模式,为用户提供安全可靠的输入体验。

总结

HarmonyOS 输入法安全模式为我们开发者提供了两种不同的安全级别,我们可以根据应用场景和用户需求选择合适的模式。在基础模式下,我们需要调整功能实现,避免出现功能不可用的情况;在完整体验模式下,开发者可以使用所有系统 API,实现更丰富的用户体验。本文介绍了输入法安全模式的概述、差异、设置方法与限制,以及不同模式下的开发要点,帮助你构建安全可靠的输入法应用。

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay