博客 / 詳情

返回

秒驗丨Android端SDK API使用説明

概述

秒驗提供預登錄、登錄、兩種自定義UI等API接口供開發者調用。

預登錄(preVerify)

/**
 * com.mob.secverify.SecVerify.class
 * 檢測當前用户的手機網絡環境是否符合條件,獲取用於一鍵登錄使用的臨時憑證, 默認有效期為1個小時
 * @param callback     回調
 */  
public static void preVerify(PreVerifyCallback callback)

示例代碼:

// 建議提前調用預登錄接口,可以加快免密登錄過程,提高用户的體驗。
SecVerify.preVerify(new PreVerifyCallback() {
    @Override
    public void onComplete(Void data) {
        // TODO處理成功的結果
    }
    @Override
    public void onFailure(VerifyException e) {
        // TODO處理失敗的結果
        // 獲取錯誤碼
        int errCode = e.getCode();
        //獲取SDK返回的錯誤信息
        String errMsg = e.getMessage();   
        // 更詳細的網絡錯誤信息可以通過t查看,注:t有可能為null,也可用於獲取運營商返回的錯誤信息
        Throwable t = e.getCause();
        String errDetail = null;
        if (t != null) {
            errDetail = t.getMessage();
        }
    }
});

登錄(verify)

/**
 * com.mob.secverify.SecVerify.class
 * 調用一鍵登錄方法將立即拉起授權頁面
 * @param callback     回調
 */  
public static void verify(VerifyCallback callback)

示例代碼:

SecVerify.verify(new VerifyCallback() {
    @Override
    public void onOtherLogin() {
        // 用户點擊“其他登錄方式”,處理自己的邏輯
    }
    @Override
    public void onUserCanceled() {
        // 用户點擊“關閉按鈕”或“物理返回鍵”取消登錄,處理自己的邏輯
    }
    @Override
    public void onComplete(VerifyResult data) {
        // 獲取授權碼成功,將token信息傳給應用服務端,再由應用服務端進行登錄驗證,此功能需由開發者自行實現
        // opToken
        String opToken = verifyResult.getOpToken();   
        // token
        String token = verifyResult.getToken();   
        // 運營商類型,[CMCC:中國移動,CUCC:中國聯通,CTCC:中國電信]
        String operator = verifyResult.getOperator();   
    }
    @Override
    public void onFailure(VerifyException e) {
        //TODO處理失敗的結果
    }
});

登錄接口重載方法(verify)

/**
 * com.mob.secverify.SecVerify.class
 * 調用一鍵登錄方法將立即拉起授權頁面
 * @param pageCallback     回調
 * @param getTokenCallback     回調
 */  
public static void verify(PageCallback pageCallback, GetTokenCallback getTokenCallback)

示例代碼:

SecVerify.verify(
    new PageCallback() {
        @Override
        public void pageCallback(int code, String desc) {
            // 授權頁面相關回調及錯誤碼,無法打開運營商的授權頁面的錯誤會在這裏回調
        }

    }, 
    new GetTokenCallback() {
        @Override
        public void onComplete(VerifyResult verifyResult) {
            // TODO獲取授權碼成功,將token信息傳給應用服務端,再由應用服務端進行登錄驗證,此功能需由開發者自行實現
            // 運營商token
            String opToken = verifyResult.getOpToken();   
            // 服務器token
            String token = verifyResult.getToken();   
            // 運營商類型,[CMCC:中國移動,CUCC:中國聯通,CTCC:中國電信]
            String operator = verifyResult.getOperator();   
        }
        @Override
        public void onFailure(VerifyException e) {
            // TODO處理失敗的結果
        }
    }
);

關閉自帶loading(dismissProgressDialog)

//com.mob.secverify.ui.component.CommonProgressDialog.class
/**
 *  關閉自帶loading
 */  
public static void dismissProgressDialog()

示例代碼:

CommonProgressDialog.dismissProgressDialog();

設置自定義的LoadingView(setCustomizeLoadingView)

/**
 * com.mob.secverify.ui.CustomUIRegister.class
 * 設置自定義的loading view
 * @param loadingView    自定義的loadingView
 */  
public static void setCustomizeLoadingView(View loadingView)

示例代碼:

當傳入的為空白view時相當於隱藏loading

CustomUIRegister.setCustomizeLoadingView(new View(this));

設置debug模式(setDebugMode)

SecVerify提供了以下方法用於設置debug模式:

/**
 * com.mob.secverify.SecVerify.class
 * 設置debug模式
 * @param isDebug     是否設置debug模式
 */  
public static void setDebugMode(boolean isDebug)

示例代碼:
SecVerify.setDebugMode(true);

超時設置(setTimeOut)

SecVerify提供了以下方法用於設置超時時間,單位為ms,取值在1000-10000之間:

/**
 * com.mob.secverify.SecVerify.class
 * 超時設置
 * @param time     超時時間
 */  
public static void setTimeOut(int time)

示例代碼:
SecVerify.setTimeOut(time);

主動關閉授權頁面(finishOAuthPage)

SecVerify提供了以下方法用於由開發者主動關閉授權頁面

/**
 * com.mob.secverify.SecVerify.class
 * 主動關閉授權頁面
 */  
public static void finishOAuthPage()

關於該方法,作以下説明:

登錄 接口默認在觸發回調時,SDK內部會自動關閉授權頁,開發者不需要再次調用上述方法進行關閉操作
開發者添加的 * 自定義控件 點擊時默認不關閉授權頁,如需關閉,可以使用該方法
通過該方法主動關閉授權頁時,不會觸發 * 登錄 接口的任何回調

示例代碼:
SecVerify.finishOAuthPage();

設置是否自動關閉授權頁面(autoFinishOAuthPage)

SecVerify提供了以下方法用於由開發者決定登錄成功或失敗是否自動關閉授權頁面:

/**
 * com.mob.secverify.SecVerify.class
 * 是否自動關閉授權頁面
 * @param isFinish     是否自動關閉授權頁面
 */  
public static void autoFinishOAuthPage(boolean  isFinish)

示例代碼:
SecVerify.autoFinishOAuthPage(isFinish);

或者

/**
 * com.mob.secverify.SecVerify.class
 * 是否自動關閉授權頁面
 * @param isFinish     是否自動關閉授權頁面
 */  
public static void otherLoginAutoFinishOAuthPage(boolean isFinish)

示例代碼:

SecVerify.otherLoginAutoFinishOAuthPage(isFinish);

關於以上方法,作以下説明:

  • 如果未設置或設置為true,默認會自動關閉授權頁面
  • autoFinishOAuthPage方法如果設置為false,那麼在登錄成功或者失敗的回調中,不會自動關閉授權頁面,必須要手動調用SecVerify.finishOAuthPage();方法來關閉授權頁面
  • otherLoginAutoFinishOAuthPage方法如果設置為false,那麼在其他方式登錄的回調中,不會自動關閉授權頁面,必須要手動調用SecVerify.finishOAuthPage();方法來關閉授權頁面

獲取授權頁面activity(3.3.1版本新增)

3.3.1版本新增獲取授權頁activity

/**
* 獲取授權頁面activity
* @return  授權頁面未拉起或者已經關閉,返回null; 拉起狀態下返回對應運營商授權頁面activity
*/
public static Activity getAuthPageActivity()

示例代碼

SecVerify.getAuthPageActivity();

關閉授權頁面旋轉(3.3.1版本新增)

3.3.1版本新增關閉授權頁旋轉方法

/**
* 關閉授權頁面旋轉
* 默認關閉
* @param isClosed  true:關閉屏幕旋轉角度監聽響應; false:打開屏幕旋轉角度監聽響應
*/
public static void closeOrientationDetector(boolean isClosed)

代碼示例

刷新授權頁面(refreshOAuthPage)

SecVerify提供了以下方法用於刷新授權頁面:

/**
 * com.mob.secverify.SecVerify.class
 * 刷新授權頁面
 */  
public static void refreshOAuthPage()

示例代碼:

SecVerify.refreshOAuthPage()

關於該方法,作以下説明:

  • 如果需要在授權頁面修改界面內容,可以通過設置ui屬性的hidden方法來隱藏界面控件並用自定義控件設置自己的UI
  • 獲取授權頁面的其他回調
  • SecVerify提供了以下方法用於獲取授權頁面的其他回調,此方法需放在調用verify方法之前
SecVerify.OtherOAuthPageCallBack(new OAuthPageEventCallback() {
            @Override
            public void initCallback(OAuthPageEventResultCallback cb) {
                cb.pageOpenCallback(new OAuthPageEventCallback.PageOpenedCallback() {
                    @Override
                    public void handle() {
                        // 授權頁面打開回調
                    }
                });
                cb.loginBtnClickedCallback(new OAuthPageEventCallback.LoginBtnClickedCallback() {
                    @Override
                    public void handle() {
                        // 點擊登錄按鈕回調
                    }
                });
                cb.agreementPageClosedCallback(new OAuthPageEventCallback.AgreementPageClosedCallback() {
                    @Override
                    public void handle() {
                        // 隱私協議頁面關閉回調
                    }
                });
                cb.agreementPageOpenedCallback(new OAuthPageEventCallback.AgreementClickedCallback() {
                    @Override
                    public void handle() {
                        // 點擊運營商隱私協議回調
                    }
                });
                cb.cusAgreement1ClickedCallback(new OAuthPageEventCallback.CusAgreement1ClickedCallback() {
                    @Override
                    public void handle() {
                        // 點擊自定義隱私協議1回調
                    }
                });
                cb.cusAgreement2ClickedCallback(new OAuthPageEventCallback.CusAgreement2ClickedCallback() {
                    @Override
                    public void handle() {
                        // 點擊自定義隱私協議2回調
                    }
                });
                cb.pageCloseCallback(new OAuthPageEventCallback.PageClosedCallback() {
                    @Override
                    public void handle() {
                        // 授權頁面關閉回調
                    }
                });
                cb.checkboxStatusChangedCallback(new CheckboxStatusChangedCallback() {
                    @Override
                    public void handle(boolean b) {
                        // 複選框狀態修改回調
                    }
                });
            }
        });

UISettings方式自定義豎屏UI(setUiSettings)

/**
 * com.mob.secverify.SecVerify.class
 * 自定義豎屏UI 
 * @param uiSettings     自定義豎屏ui設置
 */  
public static void setUiSettings(UiSettings uiSettings)

示例代碼:

UISettings方式自定義橫屏UI(setLandUiSettings)

/**
 * com.mob.secverify.SecVerify.class
 * 自定義橫屏UI 
 * @param landUiSettings     自定義橫屏ui設置
 */  
public static void setLandUiSettings(LandUiSettings landUiSettings)

示例代碼:

SecVerify.setLandUiSettings(landUiSettings);

UISettings自定義UI詳細文檔請查看:UISettings自定義UI

user avatar coderleo 頭像 gaoming13 頭像 dashnowords 頭像 liujunqi 頭像
4 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.