SDK版本 变更时间 变更内容
1.5.0 2022-6-17 添加多运营商SDK互备
增加错误统计和信息上报

依赖配置

支持pod和framework两种依赖方式,但是打包时需要关闭bitcode

使用pod接入

pod 'm4399QuickLogin'

注意:podfile文件不能使用use frameworks!,否则会因为找不到xib文件崩溃。
如果要使用use frameworks!可以在主工程中添加EAccountOpenPageResource.bundle资源文件

使用framework接入
  1. 下载解压一键登录 IOS framework
  2. 同时导入以下文件
  3. 添加依赖库,在项目设置 target -> 选项卡 General->Linked Frameworks and Libraries下添加
  4. Hearder Search Paths 中设置 EAccountHYSDK.framework 文件的路径,并将右边的值设置为recursive
  5. Framework Search Paths中设置m4399QuickLogin.framework文件路径
  6. 配置ATS,在 info.plist 文件中添加 App Transport Security Settings 项,并在其中添加 Allow Arbitrary Loads 子项,同时将该子项的值设置为 YES
  7. Other Linker Flags 中添加-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;
自定义UI

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。

定制界面说明

主界面

image-20200806134246169

名称 名称 备注
导航栏视图 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 可定制,必须包含,可通过MQLoginPageConfigcheckState属性来设置默认是否勾选,0为默认勾选,1为默认不勾选
隐私协议标签 21008 UILabel 必须包含,可定制样式,可通过MQLoginPageConfigcustomPAName定制定义协议名称,通过PAUrl自定义协议链接,其余内容不可定制
弹窗视图(未勾选协议时点击登陆按钮弹出)

image-20200806141208713

名称 tag 备注
弹窗底视图 21100 UIView 可定制
返回按钮 21102 UIButton 可定制
同意按钮 21103 UIButton 可定制
背景蒙板 21104 UIView 可定制
隐私协议标签 21105 UILabel 同主界面协议标签
隐私协议页面

image-20200806142244992

名称 tag 备注
导航栏视图 21200 UIView 可定制
导航栏返回按钮 21202 UIButton 可定制,必须包含
进度条 21203 UIProgressView 可定制
标题 21204 UILabel 可定制
底部横线 21205 UIView 可定制
如何生成nib文件
调试接口

可以使用[MQLoginManager shareManager].debug = YES开启调试模式