1e41f4b71Sopenharmony_ci# PatternLock
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景。手指在PatternLock组件区域按下时开始进入输入状态,手指离开屏幕时结束输入状态完成密码输入。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:** 
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## 子组件
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci##  接口
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciPatternLock(controller?: PatternLockController)
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**参数:** 
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| 参数名     | 类型                                        | 必填 | 说明 |
24e41f4b71Sopenharmony_ci| ---------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ |
25e41f4b71Sopenharmony_ci| controller | [PatternLockController](#patternlockcontroller) | 否   | 设置PatternLock组件控制器,可用于控制组件状态重置。       |
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci## 属性
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci除支持[通用属性](ts-universal-attributes-size.md)外,还支持以下属性:
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci### sideLength
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_cisideLength(value: Length)
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci设置组件的宽度和高度(宽高相同)。设置为0或负数时组件不显示。
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci**参数:** 
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci| 参数名 | 类型                         | 必填 | 说明               |
44e41f4b71Sopenharmony_ci| ------ | ---------------------------- | ---- | ------------------ |
45e41f4b71Sopenharmony_ci| value  | [Length](ts-types.md#length) | 是   | 组件的宽度和高度。默认值:288vp |
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci### circleRadius
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_cicircleRadius(value: Length)
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci设置宫格中圆点的半径。设置为0或负数时取默认值。
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**参数:** 
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci| 参数名 | 类型                         | 必填 | 说明                               |
60e41f4b71Sopenharmony_ci| ------ | ---------------------------- | ---- | ---------------------------------- |
61e41f4b71Sopenharmony_ci| value  | [Length](ts-types.md#length) | 是   | 宫格中圆点的半径。<br/>默认值:6vp |
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci### backgroundColor
64e41f4b71Sopenharmony_cibackgroundColor(value: ResourceColor)
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci设置背景颜色
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                                       |
73e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ---------------------------------------------------------- |
74e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 背景颜色 |
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci### regularColor
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ciregularColor(value: ResourceColor)
79e41f4b71Sopenharmony_ci
80e41f4b71Sopenharmony_ci设置宫格圆点在“未选中”状态的填充颜色。
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci**参数:** 
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                                       |
89e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ---------------------------------------------------------- |
90e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 宫格圆点在“未选中”状态的填充颜色。<br/>默认值:'#ff182431' |
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci### selectedColor
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ciselectedColor(value: ResourceColor)
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci设置宫格圆点在“选中“状态的填充颜色。
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci**参数:** 
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                                     |
105e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | -------------------------------------------------------- |
106e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 宫格圆点在“选中”状态的填充颜色。<br/>默认值:'#ff182431' |
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci### activeColor
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ciactiveColor(value: ResourceColor)
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci设置宫格圆点在“激活”状态的填充颜色,“激活”状态为手指经过圆点但还未选中的状态。
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**参数:** 
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                                     |
121e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | -------------------------------------------------------- |
122e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 宫格圆点在“激活”状态的填充颜色。<br/>默认值:'#ff182431' |
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci### pathColor
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_cipathColor(value: ResourceColor)
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci设置连线的颜色。
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci**参数:** 
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci| 参数名 | 类型                                       | 必填 | 说明                                 |
137e41f4b71Sopenharmony_ci| ------ | ------------------------------------------ | ---- | ------------------------------------ |
138e41f4b71Sopenharmony_ci| value  | [ResourceColor](ts-types.md#resourcecolor) | 是   | 连线的颜色。<br/>默认值:'#33182431' |
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci### pathStrokeWidth
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_cipathStrokeWidth(value: number | string)
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci设置连线的宽度。设置为0或负数时连线不显示。
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_ci**参数:** 
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci| 参数名 | 类型                       | 必填 | 说明                          |
153e41f4b71Sopenharmony_ci| ------ | -------------------------- | ---- | ----------------------------- |
154e41f4b71Sopenharmony_ci| value  | number&nbsp;\|&nbsp;string | 是   | 连线的宽度。<br/>默认值:12vp |
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci### autoReset
157e41f4b71Sopenharmony_ci
158e41f4b71Sopenharmony_ciautoReset(value: boolean)
159e41f4b71Sopenharmony_ci
160e41f4b71Sopenharmony_ci设置在完成密码输入后再次在组件区域按下时是否重置组件状态。
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
165e41f4b71Sopenharmony_ci
166e41f4b71Sopenharmony_ci**参数:** 
167e41f4b71Sopenharmony_ci
168e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                         |
169e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ------------------------------------------------------------ |
170e41f4b71Sopenharmony_ci| value  | boolean | 是   | 在完成密码输入后再次在组件区域按下时是否重置组件状态。<br/>为true时,完成密码输入后再次在组件区域按下时会重置组件状态(即清除之前输入的密码);为false时,不会重置组件状态。<br/>默认值:true |
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci### activateCircleStyle<sup>12+</sup>
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ciactivateCircleStyle(options: Optional\<CircleStyleOptions\>)
175e41f4b71Sopenharmony_ci
176e41f4b71Sopenharmony_ci设置宫格圆点在“激活”状态的背景圆环样式。
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
181e41f4b71Sopenharmony_ci
182e41f4b71Sopenharmony_ci**参数:** 
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                                         |
185e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ------------------------------------------------------------ |
186e41f4b71Sopenharmony_ci| options  | [CircleStyleOptions](#circlestyleoptions12对象说明) | 是   | 宫格圆点在“激活”状态的背景圆环样式。|
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci## CircleStyleOptions<sup>12+</sup>对象说明
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci| 名称          | 类型 | 必填 | 说明 |
196e41f4b71Sopenharmony_ci| ------------- | ------- | ---- | -------- |
197e41f4b71Sopenharmony_ci| color | [ResourceColor](ts-types.md#resourcecolor) | 否 | 背景圆环颜色。 <br/>默认值:与pathColor值相同 |
198e41f4b71Sopenharmony_ci| radius  | [LengthMetrics](../js-apis-arkui-graphics.md#lengthmetrics12) | 否 | 背景圆环的半径。<br/>默认值:circleRadius的11/6 |
199e41f4b71Sopenharmony_ci| enableWaveEffect | boolean | 否 | 波浪效果开关。<br/>默认值:true |
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci## 事件
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci除支持[通用事件](ts-universal-events-click.md)外,还支持以下事件:
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_ci### onPatternComplete
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_cionPatternComplete(callback: (input: Array\<number\>) => void)
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ci密码输入结束时触发该回调。
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci**参数:** 
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci| 参数名 | 类型            | 必填 | 说明                                                         |
218e41f4b71Sopenharmony_ci| ------ | --------------- | ---- | ------------------------------------------------------------ |
219e41f4b71Sopenharmony_ci| input  | Array\<number\> | 是   | 与选中宫格圆点顺序一致的数字数组,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。 |
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci### onDotConnect<sup>11+</sup>
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_cionDotConnect(callback: [CallBack](../../apis-basic-services-kit/js-apis-base.md#callback)\<number\>)
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci密码输入选中宫格圆点时触发该回调。
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci回调参数为选中宫格圆点顺序的数字,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci## PatternLockController
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ciPatternLock组件的控制器,可以通过它进行组件状态重置。
236e41f4b71Sopenharmony_ci
237e41f4b71Sopenharmony_ci### 导入对象
238e41f4b71Sopenharmony_ci
239e41f4b71Sopenharmony_ci```typescript
240e41f4b71Sopenharmony_cilet patternLockController: PatternLockController = new PatternLockController()
241e41f4b71Sopenharmony_ci```
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_ci### constructor
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ciconstructor()
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ciPatternLockController的构造函数。
248e41f4b71Sopenharmony_ci
249e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci### reset
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_cireset()
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci重置组件状态。
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci### setChallengeResult<sup>11+</sup>
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_cisetChallengeResult(result: PatternLockChallengeResult): void
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci用于设置图案密码正确或错误状态。
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci| 名称   | 类型                                                         | 必填 | 说明           |
274e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | -------------- |
275e41f4b71Sopenharmony_ci| result | [PatternLockChallengeResult](#patternlockchallengeresult11枚举说明) | 是   | 图案密码状态。 |
276e41f4b71Sopenharmony_ci
277e41f4b71Sopenharmony_ci## PatternLockChallengeResult<sup>11+</sup>枚举说明
278e41f4b71Sopenharmony_ci
279e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
280e41f4b71Sopenharmony_ci
281e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
282e41f4b71Sopenharmony_ci
283e41f4b71Sopenharmony_ci| 名称    | 说明           |
284e41f4b71Sopenharmony_ci| ------- | -------------- |
285e41f4b71Sopenharmony_ci| CORRECT | 图案密码正确。 |
286e41f4b71Sopenharmony_ci| WRONG   | 图案密码错误。 |
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci##  示例
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci```ts
291e41f4b71Sopenharmony_ci// xxx.ets
292e41f4b71Sopenharmony_ciimport { LengthUnit } from '@kit.ArkUI'
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci@Entry
295e41f4b71Sopenharmony_ci@Component
296e41f4b71Sopenharmony_cistruct PatternLockExample {
297e41f4b71Sopenharmony_ci  @State passwords: Number[] = []
298e41f4b71Sopenharmony_ci  @State message: string = 'please input password!'
299e41f4b71Sopenharmony_ci  private patternLockController: PatternLockController = new PatternLockController()
300e41f4b71Sopenharmony_ci
301e41f4b71Sopenharmony_ci  build() {
302e41f4b71Sopenharmony_ci    Column() {
303e41f4b71Sopenharmony_ci      Text(this.message).textAlign(TextAlign.Center).margin(20).fontSize(20)
304e41f4b71Sopenharmony_ci      PatternLock(this.patternLockController)
305e41f4b71Sopenharmony_ci        .sideLength(200)
306e41f4b71Sopenharmony_ci        .circleRadius(9)
307e41f4b71Sopenharmony_ci        .pathStrokeWidth(18)
308e41f4b71Sopenharmony_ci        .activeColor('#B0C4DE')
309e41f4b71Sopenharmony_ci        .selectedColor('#228B22')
310e41f4b71Sopenharmony_ci        .pathColor('#90EE90')
311e41f4b71Sopenharmony_ci        .backgroundColor('#F5F5F5')
312e41f4b71Sopenharmony_ci        .autoReset(true)
313e41f4b71Sopenharmony_ci        .activateCircleStyle({
314e41f4b71Sopenharmony_ci          color: '#90EE90',
315e41f4b71Sopenharmony_ci          radius: { value: 16, unit: LengthUnit.VP },
316e41f4b71Sopenharmony_ci          enableWaveEffect: true
317e41f4b71Sopenharmony_ci        })
318e41f4b71Sopenharmony_ci        .onDotConnect((index: number) => {
319e41f4b71Sopenharmony_ci          console.log("onDotConnect index: " + index)
320e41f4b71Sopenharmony_ci        })
321e41f4b71Sopenharmony_ci        .onPatternComplete((input: Array<number>) => {
322e41f4b71Sopenharmony_ci          // 输入的密码长度小于5时,提示重新输入
323e41f4b71Sopenharmony_ci          if (input.length < 5) {
324e41f4b71Sopenharmony_ci            this.message = 'The password length needs to be greater than 5, please enter again.'
325e41f4b71Sopenharmony_ci            return
326e41f4b71Sopenharmony_ci          }
327e41f4b71Sopenharmony_ci          // 判断密码长度是否大于0
328e41f4b71Sopenharmony_ci          if (this.passwords.length > 0) {
329e41f4b71Sopenharmony_ci            // 判断两次输入的密码是否相同,相同则提示密码设置成功,否则提示重新输入
330e41f4b71Sopenharmony_ci            if (this.passwords.toString() === input.toString()) {
331e41f4b71Sopenharmony_ci              this.passwords = input
332e41f4b71Sopenharmony_ci              this.message = 'Set password successfully: ' + this.passwords.toString()
333e41f4b71Sopenharmony_ci              this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT)
334e41f4b71Sopenharmony_ci            } else {
335e41f4b71Sopenharmony_ci              this.message = 'Inconsistent passwords, please enter again.'
336e41f4b71Sopenharmony_ci              this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG)
337e41f4b71Sopenharmony_ci            }
338e41f4b71Sopenharmony_ci          } else {
339e41f4b71Sopenharmony_ci            // 提示第二次输入密码
340e41f4b71Sopenharmony_ci            this.passwords = input
341e41f4b71Sopenharmony_ci            this.message = "Please enter again."
342e41f4b71Sopenharmony_ci          }
343e41f4b71Sopenharmony_ci        })
344e41f4b71Sopenharmony_ci      Button('Reset PatternLock').margin(30).onClick(() => {
345e41f4b71Sopenharmony_ci        // 重置密码锁
346e41f4b71Sopenharmony_ci        this.patternLockController.reset()
347e41f4b71Sopenharmony_ci        this.passwords = []
348e41f4b71Sopenharmony_ci        this.message = 'Please input password'
349e41f4b71Sopenharmony_ci      })
350e41f4b71Sopenharmony_ci    }.width('100%').height('100%')
351e41f4b71Sopenharmony_ci  }
352e41f4b71Sopenharmony_ci}
353e41f4b71Sopenharmony_ci```
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci![patternlock](figures/patternlock.gif)
356