在上面的代碼中,username.replace(" ","")是因為用戶在EditView中輸入的手機號碼已經被格式化了(xxx xxxx xxxx),所以在提交到登錄界面之前需要去掉手機號碼中的空格。
由於項目采用MVP架構,以上代碼只是視圖層的實現,真正的登錄實現是模型層使用BmobSDK的登錄操作。
這裏只使用手機號作為用戶名,所以前兩篇文章使用的登錄方式是壹樣的。接下來是手機號註冊的實現。在本文的例子中,手機號碼註冊使用三個元素(手機號碼、驗證碼和密碼)。
實際上,Bmob SDK提供的手機號註冊方式,只需要手機號和驗證碼就可以完成註冊過程。為什麽示例中還有另壹個密碼值?我們先來看代碼。
在上面的代碼中,User對象是從BmobUser繼承的,並且擴展了壹個昵稱屬性。
BmobUser類有壹個靜態方法signorloginbymobile phone(context上下文,string電話號碼,string security _ code,login listener),用於手機號碼的壹鍵註冊或登錄。
但是,如果需要設置其他屬性(比如昵稱等。)註冊時,不能使用signOrLoginByMobilePhone。
所以為了滿足這個需求,我采用了另壹種方法signOrLogin來實現。並將手機號碼設置為默認用戶名‘user . set username(phone _ number)’,默認初始密碼為123456,手機號碼作為默認昵稱‘user . set nickname(phone _ number)’。
我們來看看密碼重置部分的實現:
很簡單。只需調用BmobUser的靜態方法resetPasswordBySMSCode,傳入新密碼和短信驗證碼,即可完成密碼重置過程。
最後說壹下如何獲取註冊和密碼重置時使用的短信驗證碼:
驗證碼模板的名稱是在Bmob後臺創建的短信內容模板定義的名稱。您可以創建不同的註冊和重置密碼的短信模板,如:“xx應用,您的註冊驗證碼為xxxxxx。”,“xx應用,您正在重置密碼,驗證碼為xxxxxx,如果不是我操作,請忽略。”