之前應(yīng)用中使用的是阿里的投籃驗(yàn)證芯义,但是由于阿里投籃驗(yàn)證已經(jīng)不維護(hù)焰薄,導(dǎo)致App在iOS13系統(tǒng)上存在crash(最近發(fā)現(xiàn)在iOS13.4的beta版中刘莹,又奇跡般的能正常運(yùn)行了)暇藏,看了下阿里的官方通知橄抹,建議將投籃驗(yàn)證換成html5的滑塊驗(yàn)證,具體實(shí)現(xiàn)其實(shí)就是運(yùn)用了web與native的交互靴迫,將html5的滑動(dòng)驗(yàn)證結(jié)果回傳給native,從而實(shí)現(xiàn)人機(jī)驗(yàn)證楼誓。
1.登錄阿里云玉锌,找到人機(jī)驗(yàn)證,在云盾人機(jī)驗(yàn)證控制臺(tái)疟羹,新增一個(gè)h5滑動(dòng)驗(yàn)證的配置主守,可以選擇自定義樣式,然后生成一個(gè)滑動(dòng)驗(yàn)證的slide.html頁(yè)面榄融。
2.在native應(yīng)用需要試用人機(jī)驗(yàn)證的地方(通常運(yùn)用在發(fā)送驗(yàn)證碼的地方)参淫,用一個(gè)webView加載上述html,并給該webView添加相應(yīng)的配置愧杯。
在webView的代理方法中獲取html頁(yè)面中滑動(dòng)驗(yàn)證的結(jié)果涎才,為了方便取值,可以將返回的結(jié)果model化:
此處為了后面參數(shù)讀取方便力九,將滑動(dòng)回調(diào)的結(jié)果model化耍铜,因?yàn)锳pp實(shí)例需求,這里是用單獨(dú)一個(gè)頁(yè)面來(lái)做人機(jī)驗(yàn)證的跌前,所以會(huì)有一個(gè)回調(diào)的block棕兼。
3.在slide.html中添加window.webkit.messageHandlers.slideSuccessResult.postMessage({ "token": nc_token, "sid": data.csessionid, "sig": data.sig }),將滑動(dòng)驗(yàn)證的結(jié)果發(fā)送個(gè)native
4.集成結(jié)果:
隨手記錄一下抵乓,寫(xiě)的比較隨意伴挚,詳細(xì)接入步驟可參考阿里官方文檔靶衍,建議將slide.html放到遠(yuǎn)程服務(wù)器,最好不要放在App本地訪問(wèn)茎芋。
參考:https://help.aliyun.com/document_detail/123335.html?spm=a2c4g.11186623.6.607.755d568fWelB56