| SDK版本 | 变更时间 | 变更内容 |
|---|---|---|
| 1.5.0 | 2022-6-17 | 添加多运营商SDK互备 增加错误统计和信息上报 |
支持pod和framework两种依赖方式,但是打包时需要关闭bitcode
pod 'm4399QuickLogin'
注意:podfile文件不能使用
use frameworks!,否则会因为找不到xib文件崩溃。
如果要使用use frameworks!可以在主工程中添加EAccountOpenPageResource.bundle资源文件
m4399QuickLogin.frameworkEAccountHYSDK.frameworkEAccountOpenPageResource.bundleaccount_login_sdk_core.frameworkTYRZUISDK.framework YES-ObjC、-lstdc++和-force_load加上
EAccountHYSDK.framework/EAccountHYSDK 所在的路径- (void)initWithClientId:(NSString *)clientId //clientId是从4399平台的标志
completion: (nullable FetchCompletionHandler)completion
failure: (nullable FailureHandler)fail; 在调用其他接口之前必须先进行初始化,初始化需要进行网络请求,因此需要一定的时间,建议在AppDelegate 的 didFinishLaunchingWithOption 函数中调用
调用示例:
[[MQLoginManager shareManager] initWithClientId:@"test" completion:nil failure:nil];
/**
检测网络是否能够使用一键登录,建议登录前调用
@param success 可以使用一键登录时的回调
@param failure 不能使用一键登录时的回调
*/
- (void)checkNetwork: (successHandler)success failure: (failureHandler)failure;
该方法同时有预登陆的作用,建议在打开登录页面前提前调用,可以提升打开登录页面速度。
调用示例:
[[MQLoginManager shareManager] checkNetwork:^(NSDictionary * _Nonnull resultDic) {
//允许使用一键登录的操作
} failure:^(NSError * _Nonnull error) {
//不允许使用一键登录的操作
}];
/**
登录接口
@param pageConfig 登录页面的配置
@param timeoutInterval 登录接口的超时时间,单位为秒
@param clickHandler 自定义按钮点击事件回调
@param didOpenPage 打开登录页面时的回调
@param mutiUserHandler 出现多账号登录的情况,result会返回多账号的信息,选择完成后通过SelectUserHandler将用户名返回给sdk
@param completion 登录完成的回调
@param fail 登录失败的回调
*/
- (void)openLoginPage:(nullable MQLoginPageConfig *)pageConfig
timeoutInterval:(NSTimeInterval)timeoutInterval
clickHandler:(clickEventHandler)clickHandler
pageDidOpen:(DidOpenPage)didOpenPage
onMutiUser:(nullable MutiUserHandler)mutiUserHandler
completion:(successHandler)completion
failure:(failureHandler)fail;调用示例:
[[MQLoginManager shareManager] openLoginPage:config timeoutInterval:10 clickHandler:^(NSString * _Nonnull senderTag) {
} pageDidOpen:^{
} completion:^(NSDictionary * _Nonnull resultDic) {
[[MQLoginManager shareManager] closeLoginPage];
} failure:^(NSError * _Nonnull error) {
if (error.code == 80200 || error.code == 80201) {
[[MQLoginManager shareManager] closeLoginPage];
}
}];/**
关闭登录页面
返回按钮和登录成功后不会自动退出登录页面,需要手动调用此方法
*/
- (void)closeLoginPage;
SDK提供了一个默认的登录页面供接入方使用,如果页面改动不太的话,可以通过修改MQLoginPageConfig的参数来实现改动,可修改的参数可以查看EAccountHYSDK/EAccountOpenPageConfig.h。
如果页面需要有大幅度的改动,建议直接新建nib文件,并通过MQLoginPageConfig.nibNameOfLoginVC指定nib文件。
如果使用自定义nib文件,控件需使用指定tag才能保证页面正常运行。各个控件对应的tag可以查看MQLoginPageConfig.h文件。
自定义nib文件需要注意版本为iOS9.0以后
如果使用Framework方式接入,自定义nib文件可以直接放入EAccountOpenPageResource.bundle中。使用Pod接入则需要建一个新的bundle文件,并通过MQLoginPageConfig.EAccountBundleName来指定bundle。
| 名称 | 名称 | 类 | 备注 |
|---|---|---|---|
| 导航栏视图 | 31002 | UIView | 可定制 |
| 导航栏标题 | 31003 | UILabel | 可定制 |
| 导航栏返回按钮 | 21001 | UIButton | 可定制,必须包含,点击会通过failure回调,错误码80200 |
| 导航栏底部横线 | 31004 | UIView | 可定制 |
| LOGO图片 | 32001 | UIImageView | 可定制 |
| 手机号码标签 | 21002 | UILabel | 可定制,必须包含此控件才能显示手机号码 |
| 品牌logo | 21003 | UIImageView | 不可定制 |
| 品牌标签 | 21004 | UILabel | 可定制样式,不可定制内容 |
| 登陆按钮 | 21005 | UIButton | 可定制,必须包含 |
| 登陆按钮Loading图 | 210051 | UIImageView | 可定制 |
| 其他登陆按钮 | 21006 | UIButton | 可定制,点击会通过failure回调,错误码为80201 |
| 勾选按钮 | 21007 | UIButton | 可定制,必须包含,可通过MQLoginPageConfig的checkState属性来设置默认是否勾选,0为默认勾选,1为默认不勾选 |
| 隐私协议标签 | 21008 | UILabel | 必须包含,可定制样式,可通过MQLoginPageConfig的customPAName定制定义协议名称,通过PAUrl自定义协议链接,其余内容不可定制 |
| 名称 | tag | 类 | 备注 |
|---|---|---|---|
| 弹窗底视图 | 21100 | UIView | 可定制 |
| 返回按钮 | 21102 | UIButton | 可定制 |
| 同意按钮 | 21103 | UIButton | 可定制 |
| 背景蒙板 | 21104 | UIView | 可定制 |
| 隐私协议标签 | 21105 | UILabel | 同主界面协议标签 |
| 名称 | tag | 类 | 备注 |
|---|---|---|---|
| 导航栏视图 | 21200 | UIView | 可定制 |
| 导航栏返回按钮 | 21202 | UIButton | 可定制,必须包含 |
| 进度条 | 21203 | UIProgressView | 可定制 |
| 标题 | 21204 | UILabel | 可定制 |
| 底部横线 | 21205 | UIView | 可定制 |
ibtool --errors --warnings --output-format human-readable-text --compile nib文件地址 目标xib地址可以使用[MQLoginManager shareManager].debug = YES开启调试模式