PatternLock
圖案密碼鎖組件,以九宮格圖案的方式輸入密碼,用于密碼驗(yàn)證場(chǎng)景。手指在PatternLock組件區(qū)域按下時(shí)開(kāi)始進(jìn)入輸入狀態(tài),手指離開(kāi)屏幕時(shí)結(jié)束輸入狀態(tài)完成密碼輸入。
說(shuō)明:
開(kāi)發(fā)前請(qǐng)熟悉鴻蒙開(kāi)發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
該組件從API Version 9開(kāi)始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。
子組件
無(wú)
接口
PatternLock(controller?: PatternLockController)
參數(shù)名 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
controller | [PatternLockController] | 否 | 設(shè)置PatternLock組件控制器,可用于控制組件狀態(tài)重置。 |
屬性
除支持[通用屬性]外,還支持以下屬性:
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
sideLength | [Length] | 設(shè)置組件的寬度和高度(寬高相同)。設(shè)置為0或負(fù)數(shù)時(shí)組件不顯示。 默認(rèn)值:288vp |
circleRadius | [Length] | 設(shè)置宮格中圓點(diǎn)的半徑。設(shè)置為0或負(fù)數(shù)時(shí)取默認(rèn)值。 默認(rèn)值:6vp |
regularColor | [ResourceColor] | 設(shè)置宮格圓點(diǎn)在“未選中”狀態(tài)的填充顏色。 默認(rèn)值:'#ff182431' |
selectedColor | [ResourceColor] | 設(shè)置宮格圓點(diǎn)在“選中”狀態(tài)的填充顏色。 默認(rèn)值:'#ff182431' |
activeColor | [ResourceColor] | 設(shè)置宮格圓點(diǎn)在“激活”狀態(tài)的填充顏色(“激活”狀態(tài)為手指經(jīng)過(guò)圓點(diǎn)但還未選中的狀態(tài))。 默認(rèn)值:'#ff182431' |
pathColor | [ResourceColor] | 設(shè)置連線的顏色。 默認(rèn)值:'#33182431' |
pathStrokeWidth | number | string |
autoReset | boolean | 設(shè)置在完成密碼輸入后再次在組件區(qū)域按下時(shí)是否重置組件狀態(tài)。設(shè)置為true,完成密碼輸入后再次在組件區(qū)域按下時(shí)會(huì)重置組件狀態(tài)(即清除之前輸入的密碼);反之若設(shè)置為false,則不會(huì)重置組件狀態(tài)。 默認(rèn)值:true |
事件
除支持[通用事件]外,還支持以下事件:
名稱 | 描述 |
---|---|
onPatternComplete(callback: (input: Array) => void) | 密碼輸入結(jié)束時(shí)觸發(fā)該回調(diào)。 input: 與選中宮格圓點(diǎn)順序一致的數(shù)字?jǐn)?shù)組,數(shù)字為選中宮格圓點(diǎn)的索引值(第一行圓點(diǎn)從左往右依次為0、1、2,第二行圓點(diǎn)依次為3、4、5,第三行圓點(diǎn)依次為6、7、8)。 |
onDotConnect(callback: Callback)11+ | 密碼輸入選中宮格圓點(diǎn)時(shí)觸發(fā)該回調(diào)。**說(shuō)明:**回調(diào)參數(shù)為選中宮格圓點(diǎn)順序的數(shù)字,數(shù)字為選中宮格圓點(diǎn)的索引值(第一行圓點(diǎn)從左往右依次為0、1、2,第二行圓點(diǎn)依次為3、4、5,第三行圓點(diǎn)依次為6、7、8)。 |
PatternLockController
PatternLock組件的控制器,可以通過(guò)它進(jìn)行組件狀態(tài)重置。
導(dǎo)入對(duì)象
let patternLockController: PatternLockController = new PatternLockController()
reset
reset(): void
重置組件狀態(tài)。
setChallengeResult11+
setChallengeResult(result: PatternLockChallengeResult): void
用于設(shè)置圖案密碼正確或錯(cuò)誤狀態(tài)。
參數(shù) | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
result | [PatternLockChallengeResult] | 是 | 圖案密碼狀態(tài)。 |
PatternLockChallengeResult11+枚舉說(shuō)明
名稱 | 描述 |
---|---|
CORRECT | 圖案密碼正確。 |
WRONG | 圖案密碼錯(cuò)誤。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
示例
// xxx.ets
@Entry
@Component
struct PatternLockExample {
@State passwords: Number[] = []
@State message: string = 'please input password!'
private patternLockController: PatternLockController = new PatternLockController()
build() {
Column() {
Text(this.message).textAlign(TextAlign.Center).margin(20).fontSize(20)
PatternLock(this.patternLockController)
.sideLength(200)
.circleRadius(9)
.pathStrokeWidth(18)
.activeColor('#B0C4DE')
.selectedColor('#228B22')
.pathColor('#90EE90')
.backgroundColor('#F5F5F5')
.autoReset(true)
.onDotConnect((index: number) = > {
console.log("onDotConnect index: " + index)
})
.onPatternComplete((input: Array< number >) = > {
// 輸入的密碼長(zhǎng)度小于5時(shí),提示重新輸入
if (input === null || input === undefined || input.length < 5) {
this.message = 'The password length needs to be greater than 5, please enter again.'
return
}
// 判斷密碼長(zhǎng)度是否大于0
if (this.passwords.length > 0) {
// 判斷兩次輸入的密碼是否相同,相同則提示密碼設(shè)置成功,否則提示重新輸入
if (this.passwords.toString() === input.toString()) {
this.passwords = input
this.message = 'Set password successfully: ' + this.passwords.toString()
this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT)
} else {
this.message = 'Inconsistent passwords, please enter again.'
this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG)
}
} else {
// 提示第二次輸入密碼
this.passwords = input
this.message = "Please enter again."
}
})
Button('Reset PatternLock').margin(30).onClick(() = > {
// 重置密碼鎖
this.patternLockController.reset()
this.passwords = []
this.message = 'Please input password'
})
}.width('100%').height('100%')
}
}
審核編輯 黃宇
-
組件
+關(guān)注
關(guān)注
1文章
512瀏覽量
17813 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2339瀏覽量
42805
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論