一、前置条件
- 请开发者提供应用的基本信息,包括:服务器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