微网通联 一键认证iOS开发文档
一、前置條件
- 請開發者提供應用的基本信息,包括:服務器IP地址,應用名稱,Android (應用簽名,應用包名),IOS(Bound ID),供我方在運營商報備。
- 微網會輸出開發者,每個應用對接的AppId供開發者使用,作為開發者的標識。
- 微網SDK不支持在模擬器上編譯運行。
- 微網SDK支持中國移動(3/4G)、聯通(3/4G)、電信4G的取號能力。
-
微網SDK支持網絡環境為
- 純數據網絡
- 數據網絡與wifi網絡雙開
- 對于雙卡手機,微網SDK取當前流量卡號
二、開發環境搭建
-
微網SDK支持Xcode 10.0,iOS8.0+及以上版本。
-
導入framework
將微網SDK壓縮包中framework文件夾下所有資源添加到工程中(注意勾選Copy items if needed)
-
Xcode配置
1,Other Linker Flags 中 添加 –ObjC
注意:如果以上操作仍然出現unrecognized selector sent to instance找不到方法報錯,則添加更 改為-all_load
2,設置 Enable Bitcode = No
在xcode->Build Settings->Build Options 中,設置 Enable Bitcode = No
3,添加libc++.1.tbd和libz.1.2.8.tbd
在xcode->General(或者Build Phases)->Linked Frameworks and Libraries中點擊 + ,搜索并選擇添加libc++.1.tbd和libz.1.2.8.tbd
4,Swift工程設置
Swift工程需要額外添加-force_load 在xcode->BuildSetting->Other Linker Flags 添 加-force_load。
三、接口方法說明
1、獲取認證實例
使用場景:使用接口前獲取使用實例
接口說明:開發者調用接口前必須先獲取該實例
-
方法原型
+ (instancetype) getInstance;
-
代碼示例
WESDKLogin *loginManager = [WESDKLogin getInstance];
2、SDK獲取版本號
使用場景:進行初始化的時候需要先獲取SDK的版本
接口說明:獲取SDK的版本號方法
-
方法原型
+ (NSString *) getVersion;
3、SDK初始化
使用場景:在app啟動時調用
接口說明:保證在預取號或一鍵登錄前調用成功一次,初始化返回false時,后續操作會失敗,一鍵登錄和號碼認證功能同時使用時,只需要成功調用一次即可
-
方法原型
/**
?
使用運營商數據初始化SDK
?
@param data 微網通聯平臺獲取到的sdkInfo
?
@param appId 微網通聯平臺獲取到的appId
?
@param error 初始化失敗的錯誤
?
@return 是否初始化成功
?
*/
?
- (BOOL) initWithData:(NSString *)data
?
withAppid:(NSString *)appId
?
andError:(NSError **)error;
-
示例代碼
//微網通聯平臺獲取到的appCode
NSString *Output = responseObject[@"Output"];
?
NSError *error;
?
BOOL initResult = [[WESDKLogin getInstance] initWithData:Output
withAppid:@"your app id"
andError:&error];
NSLog(@"init-success:%d",initResult);
4、SDK預取號
使用場景:在執行拉起授權頁的方法前調用此方法,比如調一鍵登錄的vc的viewdidload中,或者rootVC的viewdidload中,或者app啟動后,此調用將有助于提高拉起授權頁的速度和成功率,是拉起授權頁的前提必須操作
接口作用:初始化成功后,如果當前為電信/聯通/移動的號碼,可調用預取號接口,提前獲知當前用戶的手機網絡環境是否符合一鍵登錄的使用條件,成功后將得到用于一鍵登錄使用的臨時憑證,默認的憑證有效期60min(電信)/30min(聯通)/60min(移動)
使用建議:
開發者在拉起授權頁之前,提前進行預取號,否則會造成拉起授權頁錯誤
此方法為異步方法,需要0.5s~2s的時間取得臨時憑證,建議您預取號成功后,再拉起授權頁
不建議頻繁的多次調用和在拉起授權頁后調用
-
方法原型
//預取號
- (void) perMobileWithResultListen:(PreMobileResultListener)perMobileListen;
-
參數說明
字段 類型 含義 perMobileListen PreMobileResultListener 預取號回調 回調函數會返回一個NSDictionary類型的結果,以下是回調結果的結構:
字段 類型 含義 resultCode WESDKCode 返回碼 resultMsg NSString 返回碼描述信息 expiresTime NSTimeInterval 過期時間 operatortype NSString 運營商類型 -
示例代碼
[[WESDKLogin getInstance] perMobileWithResultListen:^(NSDictionary *result) {?
NSLog(@"perMobile response is %@",result);
WESDKCode resultCode = ((NSNumber
*)result[@"resultCode"]).unsignedIntegerValue;
?
dispatch_async(dispatch_get_main_queue(), ^{if (resultCode == WESDKCodeSucceed) {//預取號成功,拉起授權頁
} else {//預取號失敗,使用其他登錄方式
}
});
}];
5、拉起授權頁
使用場景:調用該接口會拉起SDK中的授權頁面,供用戶進行點擊確認一鍵登錄的操作,調用此方法前,開發者需要設置授權頁面的元素,請參考頁面可調屬性進行授權頁面的設置,如不設置,將按照微網提供的默認樣式呈現授權頁面
接口說明:調用該接口SDK將會拉起授權頁面,用戶授權一鍵登錄后,SDK將返回預取號臨時憑證AccessCode給到應用客戶端
-
方法原型
/**
?
一鍵登錄,獲取到的token,可傳給移動認證服務端獲取完整手機號
?
@param listener 回調
*/
- (void) getLoginTokenWithListener:(TokenResultListener)listener;
-
參數說明
回調函數會返回一個NSDictionary類型的結果,以下是回調結果的結構:
字段 類型 含義 resultCode WESDKCode 返回碼 resultMsg NSString 返回碼描述信息 AccessCode NSString 手機號置換令牌,返回碼WESDKCodeSucceed時才有此值 -
示例代碼
//設置頁面配置對象,詳細屬性說明見 拉起授權頁
WECustomModel *custom = [[WECustomModel alloc] init];
?
custom.currentVC = loginViewController;
?
//調用設置方法
[[WESDKLogin getInstance] setAuthControllerConfig:custom];
?
//調用設置方法之后,緊接著拉起授權頁
[[WESDKLogin getInstance] getLoginTokenWithListener:^(NSDictionary *result) {?
NSLog(@"get Login result:%@",result);
WESDKCode resultCode = ((NSNumber
*)result[@"resultCode"]).unsignedIntegerValue;
?
if (resultCode == WESDKCodeSucceed) {NSString *accesscode = result[@"AccessCode"];
//服務端置換手機號,詳見服務端接口文檔說明
} else if(resultCode == WESDKCodeAuthSuccessOpen) {?
//事件統計
NSLog(@"授權頁面打開");
?
} else {?
//其他登錄方式
}
?
}];
6、關閉授權頁
使用場景:拉起的授權頁面后,開發者收到SDK的回調消息調用該方法來關閉授權頁面
接口說明:得到SDK的回調消息后,手動關閉授權頁
補充說明:用戶點擊左上角關閉頁面按鈕時會自動關閉授權頁并回調通知開發者,無需開發者干預
-
方法原型
/**
?
關閉授權界面
@param flag 動畫開關
@param completion 回調參數
?
*/
- (void)we_dismissViewControllerAnimated: (BOOL)flag completion:(void (^ __nullable)(void))completion;
-
示例代碼
[[WESDKLogin getInstance] we_dismissViewControllerAnimated:YES
completion:^{?
[weakSelf presentViewController:resultController animated:YES
completion:nil];
?
}];
7、獲取本機號碼認證令牌
使用場景:開發者在發起號碼認證前需調用該接口獲取憑證信息再進行服務器的認證
接口說明:在進行號碼認證前獲取認證需要的accessCode的接口
-
方法原型
typedef void(^TokenResultListener)(NSDictionary *result);
?
- (void)mobileAuthWithListener:(TokenResultListener)listener;
-
參數說明
響應參數說明
字段 類型 含義 resultCode WESDKCode 返回碼 resultMsg NSString 返回碼含義 AccessCode NSString 手機號置換令牌(resultCode == WESDKCodeSucceed時有此值) -
示例代碼
[[WESDKLogin getInstance] mobileAuthWithListener:^(NSDictionary *result) {//獲取code
WESDKCode code = [((NSNumber *)result[@"resultCode"]) unsignedIntegerValue];
? ?
? //
? if (code == WESDKCodeSucceed) {//成功? ?
? //校驗
? NSString *AccessCode = result[@"AccessCode"];
?
? } else {? ?
? //其他校驗方式
? ?
? }
}];
8、設置超時時間
使用場景:在預取號和本機號碼校驗方法調用之前設置,來控制獲取accessCode的超時時間
接口說明:設置預取號和本機號碼校驗方法的超時時間,默認五秒,設置范圍3~8秒
-
方法原型
/**
設置超時,默認五秒,設置范圍3~8秒
@param timeout 超時
*/
- (void)setTimeoutInterval:(NSTimeInterval)timeout;
9、輸出調試日志
使用場景:設置debug模式進行調試,SDK會輸出一下調試日志
接口說明:開發時需要進行調試的時候可以打開日志
-
方法原型
/**
@param isDebug 開關參數
*/
- (void) setDebugMode:(BOOL)isDebug;
10、網絡環境判斷
使用場景:粗略判斷當前的網絡環境是否?持?鍵登錄或者號碼認證
接口說明:該方法可以從多個維度(是否含有SIM,是否處于飛行模式,當前網絡制式)等多個維度粗略的判斷當前網絡環境是否支持?鍵登錄或者號碼認證。此方法為同步方法。當該方法返回 NO 時,不建議繼續使用一鍵登錄/號碼認證功能
-
方法原型
/// 判斷當前網絡環境是否支持?鍵登錄或號碼認證
- (BOOL) checkVerifiyEnable;
四、授權頁設計
默認樣式
狀態欄
支持狀態欄設置文字(時間,電池,信號等)和背景顏色為黑色活白色,也可以設置背景圖沉浸狀態
標題欄
- 標題欄:支持設為隱藏狀態
- 返回按鈕:點擊事件的位置和區域固定,可更換為自定義圖片
- 標題:允許修改文本(包括文案、顏色、字體大小)
- 自定義區域:可以在右側自定義按鈕,設置包括文案、圖片、跳轉鏈接等內容。
logo
- 支持更換自定義圖片,圖片尺寸無限制,在X軸上居中
- logo圖片可以隱藏,可以設置Y軸偏移量進行上下位置調整
- 此類自定義圖片,開發者都可以更具不同分辨率機型,上傳大小不同的圖片
號碼欄
- 可以設置文本顏色、字體大小,不允許隱藏
slogan
- 支持設置文本顏色
- slogan在X軸居中,可以設置Y軸偏移量進行上下位置調整
登錄按鈕
- 按鈕在X軸上居中,可以設置Y軸偏移量進行上下位置調整
- 允許設置文本顏色,字體大小
- 可以通過上傳圖片的方式自定義按鈕樣式,不允許隱藏
切換按鈕
- 按鈕居中,可以設置Y軸位移進行上下位置調整
- 允許修改文字顏色,字體大小,可以隱藏。
隱私欄
- 文案可以設置Y軸位移進行上下文位置調整。
- 允許開發者設置自己的自定義協議,支持0~2份協議鏈接。
- checkBox勾選框:默認不勾選,開發者可以自定義是否默認勾選
背景、自定義控件
- 授權頁支持開發者自己上傳自定義圖片充當授權頁背景。
- 在不遮擋默認元素的情況下,開發者可以在空白處增加自定義控件以滿足更多個性化需求。例如跳轉APP登錄/注冊界面,增加微信、QQ等第三方登錄界面以及圖標、增加UI元素和文字等等。
開發者不得通過任何技術手段,將授權頁面的隱私欄、品牌露出內容隱藏、覆蓋,對于接入微網SDK并上線的應用,我方和運營商會對上線的應用授權頁面做審查,如果有出現未按要求設計授權頁面,將隱私欄、運營商品牌、授權登錄按鈕隱去不可見的設計,我方有權將應用的登錄功能下線。
五、頁面可調屬性
使用場景:開發者如果要設置授權頁面的元素,需在調用拉起授權頁面前調用該接口進行設置。
接口說明:開發者可以通過setAuthControllerConfig方法修改授權頁面屬性。
方法名稱:getLoginOnViewController:andViewModel:TokenWithListener:
方法原型:
/// 打開登錄?
/// @param vc present view Controller
/// @param model ??配置
/// @param listener 回調
- (void)getLoginOnViewController:(UIViewController *)vc
andViewModel:(WEAuthViewModel *)model
TokenWithListener:(TokenResultListener)listener;
通過model(WEAuthViewModel類型)屬性,可以實現:
- 可以允許開發者在授權頁面上添加自定義控件;
- 可以設置首頁頁面UI元素控件布局;
以下是WEAuthViewModel類所有屬性的說明
1、狀態欄部分設置
注意:狀態欄設置的如下兩個屬性生效的前提條件是:
Status bar is initially hidden 設為 YES,View controller-based status bar appearance 設為 NO
/// 狀態欄是否隱藏,默認為NO
@property (nonatomic,assign) BOOL prefersStatusBarHidden;
///狀態欄主題?格,默認為UIStatusBarStyleDefault*/
@property (nonatomic,assign) UIStatusBarStyle
preferredStatusBarStyle;
2、全屏授權頁轉場動畫
typedef NS_ENUM(NSUInteger, WeLinkPresentationDirection){
WeLinkPresentationDirectionBottom = 0, //底部 present默認效果,底?底出
WeLinkPresentationDirectionRight, //右邊 右?右出
WeLinkPresentationDirectionTop, //上? 上?上出
WeLinkPresentationDirectionLeft, //左邊 左?左出
WeLinkPresentationNoAnimated
//?動畫
};
///授權頁面推出的動畫效果:參考WeLinkPresentationDirection枚舉
@property (nonatomic, assign) WeLinkPresentationDirection
presentType;
3、導航欄設置
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| navHidden | BOOL | 導航欄隱藏,默認不隱藏 |
| navText | NSAttributedString | 導航欄標題,默認:@"免密登錄",15pt,白色 |
| navColor | UIColor | 設置導航欄顏色 |
| navBackHidden | BOOL | 導航欄返回按鈕隱藏 |
| navReturnImg | UIImage | 導航返回圖標(尺寸根據圖片大小) |
| navBackLeftMargin | NSNumber | 導航欄按鈕左偏移 |
| navMoreView | UIView | 授權頁導航右邊的自定義控件,(獲取navMoreViewsize的優先級 frame.size >>> [viewsizeThatFit:CGSizeZero],X、Y設置無效) |
4、協議頁導航欄
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| privacyNavTitle | NSDictionary<NSString*,NSAttributedString*> | 協議詳情頁導航欄標題 |
| privacyNavBackImg | UIImage | 協議詳情頁導航欄返回圖片(尺寸根據圖片大小) |
| privacyNavColor | UIColor | 協議詳情頁導航欄顏色 |
5、自定義控件和頁面背景
/**授權界?背景圖?*/
@property (nonatomic,strong) UIImage *authPageBackgroundImage;
/**授權界??定義控件View的Block*/
@property (nonatomic,copy) void(^authViewBlock)(UIView *customView);
示例:
customeModel.authViewBlock = ^(UIView *customView) {
UIImageView *imageView = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"微?logo"]];
imageView.frame = customView.bounds;
[customView addSubview:imageView];
};
6、logo
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| logoImg | UIImage | LOGO圖片 |
| logoHidden | BOOL | LOGO圖片隱藏 |
| logoWidth | CGFloat | LOGO圖片寬度 |
| logoHeight | CGFloat | LOGO圖片高度 |
| logoOffsetY | NSNumber | LOGO圖片Y軸偏移量 |
| logoOffsetX | NSNumber | LOGO圖片X軸偏移量 |
7、slogan
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| sloganHidden | BOOL | 設置slogan隱藏 |
| sloganTextStyle | NSDictionary<NSAttributedStringKey, id> | slogan文字樣式 |
| sloganText | NSString | 自定義slogan文字 |
| sloganOffsetY | NSNumber | Slogan偏移量Y |
| sloganOffsetX | NSNumber | Slogan偏移量X |
8、logo設置
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| logoImg | UIImage | LOGO圖片 |
| logoHidden | BOOL | LOGO圖片隱藏 |
| logoWidth | CGFloat | LOGO圖片寬度 |
| logoHeight | CGFloat | LOGO圖片高度 |
| logoOffsetY | NSNumber | LOGO圖片Y軸偏移量 |
| logoOffsetX | NSNumber | LOGO圖片X軸偏移量 |
9、號碼欄設置
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| phoneNumStyle | NSDictionary<NSAttributedStringKey,id> | 手機掩碼文字樣式(默認黑色,22pt,粗體) |
| phoneNumOffsetX | NSNumber | 手機掩碼欄X偏移量 |
| phoneNumOffsetY | NSNumber | 號碼欄Y手機掩碼欄Y偏移量 |
10、登錄按鈕設置
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| logBtnText | NSAttributedString | 登錄按鈕文本(默認 - @“本機號碼登錄” 17號字體,白色) |
| logBtnImgs | NSArray <UIImage*> | 登錄按鈕背景圖片添加到數組(順序如下:@[激活狀態的圖片,失效狀態的圖片,高亮狀態的圖片] |
| logBtnOffsetY | NSNumber | 登錄按鈕Y偏移量 |
| logBtnMarginLeft | NSNumber | 登錄按鈕左邊距 |
| logBtnMarginRight | NSNumber | 登錄按鈕右邊距 |
| logBtnMarginLR | NSNumber | 登錄按鈕左右邊距 |
| logBtnHeight | CGFloat | 登錄按鈕高度 |
說明:
左邊距和右邊距配合使用,優先級高,用于設置左右邊距不相等的情況,如果兩個值有任?值為空則不生效(需要設置高度logBtnHeight != 0,不設置不生效)
左右邊距單獨使用,優先級低,用于設置左右邊距相等的情況(需要設置高度logBtnHeight != 0,不設置不生效)
都不設置,則采用圖片(激活狀態的圖片)尺寸,居中展示
11、Toast (未勾選協議的情況下點擊登錄按鈕)
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| toastViewBlock | void(^toastViewBlock)(UIView*containerView); | 自定義Toast提示,設置后不再展示默認Toast |
| notCheckProtocolHint | NSString | 未勾選服務條款復選框時,點擊登錄按鈕的提示。默認為"請同意服務條款"。 |
| toastDuration | NSNumber | Toast顯示的時?,默認1秒 |
| toastViewOffsetY | NSNumber | Toast Y軸偏移量,默認是距離containerView九分之五的長度(填寫具體的數值,eg:@(530)) |
| toastTextStyle | NSDictionary<NSAttributedStringKey,id> | Toast文字的樣式 默認:15號字體,白色 |
| toastCornerRadius | NSNumber | Toast圓角 默認:7 |
| toastBackgroundColor | UIColor | ToastView背景顏色 默認黑色 |
12、Loading (勾選協議的情況下點擊登錄按鈕,等待動畫)
@property (nonatomic,copy) void(^authLoadingViewBlock)(UIView
*containerView);
說明:
在SDK返回AccessCode后,UI上會開始展示Loading動畫,不設置自定義Loading動畫,則展示默認Loading動畫。如果想停止默認Loading動畫,可以使用方法
[[WESDKLogin getInstance] stopLoading];
13、隱私條款
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| uncheckedImg | UIImage | 復選框未選中時圖片 |
| checkedImg | UIImage | 復選框選中時圖片 |
| checkboxWH | NSNumber | 復選框大小(只能正方形)必須大于12,不設置的話,使用圖片尺寸,如果圖片尺寸小于12,則復選框大小為12*12 |
| checkboxChecked | BOOL | 隱私條款check框默認狀態 默認:NO |
| checkBoxHidden | BOOL | 是否隱藏勾選框,隱藏后自動設置為勾選狀態 |
| checkBoxResponsePadding | NSNumber | 擴大復選框點擊范圍,默認擴大15,詳情參見CGRectInset函數 |
| defaultPrivacySymbol | BOOL | 運營商隱私協議是否使?書名號(《》),默認:YES |
| appPrivacyAlignment | NSTextAlignment | 隱私條款文本對齊方式,默 認:NSTextAlignmentLeft |
| appPrivacyOriginLR | NSArray<NSNumber *> | 隱私條款(包括check框)的左右邊距,默認左右邊距相等,值等于(屏幕寬 - 280)/ 2,280是登錄按鈕默認寬度 |
| appPrivacyOffsetY | NSNumber | 隱私條款Y偏移量(注:此屬性為與屏幕底部的距離) |
| appPrivacyColor | NSArray<UIColor*> | 隱私條款名稱顏色:@[基礎文字顏色UIColor,條款顏色UIColor] eg.@[[UIColor lightGrayColor],[UIColor greenColor]] |
| appPrivacyTextFont | UIFont | 隱私條款文字字體 |
| appPrivacyAbbreviatedName | NSString | 隱私條款--APP名稱簡寫 默認取CFBundledisplayname 設置描述文本尾部后此屬性無效*/ |
| appPrivacyFirst | NSArray | 隱私條款Y?:需同時設置Name和UrlString eg.@[@"條款?名稱",條款?URL] @[NSSting,NSURL]; |
| appPrivacySecond | NSArray | 隱私條款?:需同時設置Name和UrlString eg.@[@"條款?名稱",條款?URL] @[NSSting,NSURL]; |
| appPrivacyThird | NSArray | 隱私條款三:需同時設置Name和UrlString eg.@[@"條款?名稱",條款?URL] @[NSSting,NSURL]; |
| appPrivacyBefore | NSString | 描述文本首部 default:"同意" |
| officialPrivacyBefore | NSString | 自定義運營商條款前綴 默認:@"" |
| officialPrivacyEnd | NSString | 自定義運營商條款后綴 默認:@"" |
| appPrivacyOneLinkText | NSString | 描述文本? default:"和" |
| appPrivacyTwoLinkText | NSString | 描述文本三 default:"、" |
| appPrivacyThreeLinkText | NSString | 描述文本四 default:"、" |
| appPrivacyEnd | NSString | 描述文本 尾部 default: "并授權AppName使用認證服務" |
說明:
隱私協議文本拼接: DesTextFirst+運營商條款+DesTextSecond+隱私條款?+DesTextThird+隱私條款?+DesTextFourth+隱私條款三+DesTextLast
14、窗口模式
| model屬性 | 值類型 | 屬性說明 |
|---|---|---|
| authWindow | BOOL | 窗口模式設置 |
| cornerRadius | CGFloat | 自定義窗口弧度 默認是10 |
| scaleW | CGFloat | 自定義窗口寬-縮放系數,默認是 豎屏0.8 橫屏0.5 |
| scaleH | CGFloat | 自定義窗口高-縮放系數,默認是 豎屏0.5 橫屏0.9 |
| modalTransitionStyle | UIModalTransitionStyle | 窗口模式推出動畫 |
| authWindowWidth | CGFloat | 自定義窗口寬 |
| authWindowHeight | CGFloat | 自定義窗口高 |
| bottomWindow | BOOL | 是否使用底部彈窗模式(底部彈窗只支持豎屏) |
| maskWindowColor | UIColor | 彈窗蒙層顏色 (默認是透明的) |
彈窗尺寸可以使用絕對值定義,也可以使用比例定義,絕對值定義優先級高于比例定義
UIModalTransitionStyle可以使用的值
UIModalTransitionStyleCoverVertical,下推
UIModalTransitionStyleFlipHorizontal,翻轉
UIModalTransitionStyleCrossDissolve,淡出
六、返回碼
| 返回碼 | 返回碼描述 |
|---|---|
| WESDKCodeFailure | 失敗 |
| WESDKCodeUnInitError | SDK尚未初始化或初始化錯誤 |
| WESDKCodeUnPerMobileError | 沒有進行預取號操作 |
| WESDKCodeProcessException | 數據解析異常 |
| WESDKCodeRequestError | 網絡請求錯誤 |
| WESDKCodeNoEnough | 余額不足 |
| WESDKCodeAccountIncorrectError | 用戶名或密碼不正確 |
| WESDKCodeOperatorConfigError | 獲取運營商配置失敗 |
| WESDKCodeSelectedOtherWay | 用戶點擊“賬號切換”按鈕 |
| WESDKCodeUserCancelAuthError | 用戶取消登錄(關閉頁面) |
| WESDKCodeOtherError | 其他錯誤 |
| WESDKCodeBundleIDError | bundle id 校驗失敗 |
| WESDKCodeNoChanalError | 不支持當前運營商的號碼認證或一鍵登錄 |
| WESDKCodeUnSupportError | 當前網絡環境不支持號碼認證或一鍵登錄 |
| WESDKCodeNoSIMError | 沒有SIM卡 |
| WESDKCodeAuthSuccessOpen | 授權界面彈起 |
| WESDKCodeSucceed | 成功 |
總結
以上是生活随笔為你收集整理的微网通联 一键认证iOS开发文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dreamoon and Ranking
- 下一篇: 操作系统第四章习题