Commit d697483a authored by lmj_521aiau@163.com's avatar lmj_521aiau@163.com

no message

parent 5b638629
......@@ -18,7 +18,6 @@ target 'ZhiJi' do
pod 'MJExtension'
pod 'MJRefresh', '3.1.15.3'
pod 'RTRootNavigationController'
pod 'CL_ShanYanSDK' #创蓝 一键登录
pod 'SwiftyStoreKit'
# map
......
Copyright (c) 2018 wanglijun311@gmail.com <CAODA19920605w>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
This diff is collapsed.
//
// CLCompleteResult.h
// CL_ShanYanSDK
//
// Created by wanglijun on 2018/10/29.
// Copyright © 2018 wanglijun. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, CLSDKPrepareStutas) {
CLSDKPrepareStutasERRORIniting,//失败-未完成(正在进行中)
CLSDKPrepareStutasERRORTimeOut,//失败-超时
CLSDKPrepareStutasERRORFailure,//失败-出错
CLSDKPrepareStutasERRORNil,//失败-没有预取号
CLSDKPrepareStutasSUCCESS,//成功
};
NS_ASSUME_NONNULL_BEGIN
@class CLCompleteResult;
typedef void(^CLComplete)(CLCompleteResult * completeResult);
@interface CLCompleteResult : NSObject
@property (nonatomic,assign)NSInteger code;//SDK外层code
@property (nonatomic,nullable,copy)NSString * message;//SDK外层msg
@property (nonatomic,nullable,copy)NSDictionary * data;//SDK外层data
@property (nonatomic,nullable,strong)NSError * error;//Error
//@property (nonatomic,nullable,strong)id clModel;
//内层
@property (nonatomic,assign)NSInteger innerCode;//SDK内层code
@property (nonatomic,nullable,copy)NSString * innerDesc;//SDK内层msg
@property (nonatomic,nullable,copy)NSDictionary * innerData;//SDK外层data
@property (nonatomic,nullable,strong)NSError * innerError;//Error
/**
是否已经拉起授权页
default is NO
*/
@property (nonatomic,assign)BOOL authPagePresented;
+(instancetype)cl_CompleteWithCode:(NSInteger)code message:(NSString *)message data:(nullable NSDictionary *)data error:(nullable NSError *)error;
-(void)fillPropertyInfo;
@end
NS_ASSUME_NONNULL_END
//
// CLShanYanSDKManager.h
// CL_ShanYanSDK
//
// Created by wanglijun on 2018/10/29.
// Copyright © 2018 wanglijun. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "CLCompleteResult.h"
#import "CLUIConfigure.h"
@protocol CLShanYanSDKManagerDelegate <NSObject>
@optional
/**
* 授权页面协议点击回调
* @param privacyName 协议名称
* @param index 协议位置--0:运营商协议--1:用户协议一--2:用户协议二
* @param telecom 当前运营商类型
*/
-(void)clShanYanSDKManagerWebPrivacyClicked:(NSString *_Nonnull)privacyName privacyIndex:(NSInteger)index currentTelecom:(NSString *_Nullable)telecom DEPRECATED_MSG_ATTRIBUTE("Method deprecated. Use `clShanYanActionListner:code:message:`");
/**
* 授权页面将要显示的回调
* ViewDidLoad After
* @param telecom 当前运营商类型
*/
-(void)clShanYanSDKManagerAuthPageAfterViewDidLoad:(UIView *_Nonnull)authPageView currentTelecom:(NSString *_Nullable)telecom ;
/**
* 统一事件监听方法
* type:事件类型(1,2,3)
* 1:隐私协议点击
* - 同-clShanYanSDKManagerWebPrivacyClicked:privacyIndex:currentTelecom
* code:0,1,2,3(协议页序号),message:协议名_当前运营商类型
* 2:协议勾选框点击
* code:0,1(0为未选中,1为选中)
* 3:"一键登录"按钮点击
* code:0,1(0为协议勾选框未选中,1为选中)
*/
-(void)clShanYanActionListener:(NSInteger)type code:(NSInteger)code message:(NSString *_Nullable)message;
@end
NS_ASSUME_NONNULL_BEGIN
@interface CLShanYanSDKManager : NSObject
/// 设置点击协议代理
/// @param delegate 代理
+ (void)setCLShanYanSDKManagerDelegate:(id<CLShanYanSDKManagerDelegate>)delegate;
/**
初始化
@param appId 闪验后台申请的appId
@param complete 预初始化回调block
*/
+(void)initWithAppId:(NSString *)appId complete:(nullable CLComplete)complete;
///**
// 设置初始化超时 单位:s
// 大于0有效
// 建议4s左右,默认4s
// */
//+ (void)setInitTimeOut:(NSTimeInterval)initTimeOut;
/**
设置预取号超时 单位:s
大于0有效
建议4s左右,默认4s
*/
+ (void)setPreGetPhonenumberTimeOut:(NSTimeInterval)preGetPhoneTimeOut;
/**
* 预取号
* 此调用将有助于提高闪验拉起授权页的速度和成功率
* 建议在一键登录前提前调用此方法,比如调一键登录的vc的viewdidload中、初始化成功的回调中
* 不建议在拉起授权页后调用
* 回调中如需UI操作,建议自行切到主线程
*/
+(void)preGetPhonenumber:(nullable CLComplete)complete;
/**
* 一键登录
@param clUIConfigure 闪验授权页参数配置
@param complete 回调block
* 回调中如需UI操作,建议自行切到主线程
*/
+(void)quickAuthLoginWithConfigure:(CLUIConfigure *)clUIConfigure
complete:(nonnull CLComplete)complete;
/**
一键登录 区分拉起授权页之前和之后的回调
@param clUIConfigure 闪验授权页参数配置
@param openLoginAuthListener 拉起授权页监听:拉起授权页面成功或失败的回调,拉起成功或失败均触发。当拉起失败时,oneKeyLoginListener不会触发。此回调的内部触发时机是viewDidAppear
@param oneKeyLoginListener 一键登录监听:拉起授权页成功后的后续操作回调,包括点击SDK内置的(非外部自定义)取消登录按钮,以及点击本机号码一键登录的回调。点击授权页自定义按钮不触发此回调
* 回调中如需UI操作,建议自行切到主线程
*/
+(void)quickAuthLoginWithConfigure:(CLUIConfigure *)clUIConfigure
openLoginAuthListener:(CLComplete)openLoginAuthListener
oneKeyLoginListener:(CLComplete)oneKeyLoginListener;
/**
关闭授权页
注:若授权页未拉起,此方法调用无效果,complete不触发。内部实现为调用系统方法dismissViewcontroller:Complete。
@param flag dismissViewcontroller`Animated, default is YES.
@param completion dismissViewcontroller`completion
*/
+(void)finishAuthControllerCompletion:(void(^_Nullable)(void))completion;
+(void)finishAuthControllerAnimated:(BOOL)flag Completion:(void(^_Nullable)(void))completion;
//设置checkBox勾选状态
+(void)setCheckBoxValue:(BOOL)isSelect;
+(void)hideLoading;
/**************本机认证功能***************/
/**
本机号码校验
@param complete 校验回调
*/
+ (void)mobileCheckWithLocalPhoneNumberComplete:(CLComplete)complete;
/**************本机认证功能***************/
/**
模式控制台日志输出控制(默认关闭)
@param enable 开关参数
*/
+ (void)printConsoleEnable:(BOOL)enable;
/**
禁止日志上报(默认开启)
****此接口需要在初始化之前调用,否则配置不生效****
@param forbidden YES:禁止上报 NO:允许上报
*/
+ (void)forbiddenFullLogReport:(BOOL)forbidden;
+(void)sdkInit:(NSString *)appId complete:(nullable CLComplete)complete;
+ (BOOL)checkAuthEnable;
/**
* 当前SDK版本号
*/
+ (NSString *)clShanYanSDKVersion;
@end
NS_ASSUME_NONNULL_END
//
// CL_ShanYanSDK.h
// CL_ShanYanSDK
//
// Created by wanglijun on 2018/10/29.
// Copyright © 2018 wanglijun. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for CL_ShanYanSDK.
FOUNDATION_EXPORT double CL_ShanYanSDKVersionNumber;
//! Project version string for CL_ShanYanSDK.
FOUNDATION_EXPORT const unsigned char CL_ShanYanSDKVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <CL_ShanYanSDK/PublicHeader.h>
#import <CL_ShanYanSDK/CLShanYanSDKManager.h>
#import <CL_ShanYanSDK/CLCompleteResult.h>
#import <CL_ShanYanSDK/CLUIConfigure.h>
framework module CL_ShanYanSDK {
umbrella header "CL_ShanYanSDK.h"
export *
module * { export * }
}
//
// EAccountCTEConfig.h
// EAccountApiSDK
//
// Created by lvzhzh on 2019/12/4.
// Copyright © 2019 21CN. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface EAccountCTEConfig : NSObject
@property (nonatomic, copy) NSString *timestampDomain;
@property (nonatomic, copy) NSString *preLoginDomain;
@property (nonatomic, copy) NSString *uploadLogDomain;
@end
NS_ASSUME_NONNULL_END
//
// EAccountPreLoginConfigModel.h
// EAccountApiSDK
//
// Created by Reticence Lee on 2019/12/12.
// Copyright © 2019 21CN. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface EAccountPreLoginConfigModel : NSObject
/**
NSURLRequest的最大空闲时间 默认3s
*/
@property (nonatomic, assign) NSTimeInterval timeoutIntervalForRequest;
/**
NSURLSession资源获取超时时间 默认3s
*/
@property (nonatomic, assign) NSTimeInterval timeoutIntervalForResource;
/**
socket连接超时时间 默认3s
*/
@property (nonatomic, assign) NSTimeInterval socketConnectTimeoutInterval;
/**
socket请求总超时时间 默认6s 建议设置比 socket连接超时时间 长
*/
@property (nonatomic, assign) NSTimeInterval socketTotalTimeoutInterval;
#pragma -mark 初始化方法
/**
初始化方法 请调用该方法进行初始化
*/
- (instancetype)initWithDefaultConfig;
@end
NS_ASSUME_NONNULL_END
//
// EAccountSDK.h
// EAccountSDKNetwork
//
// Created by thy on 2018/6/23.
// Copyright © 2018年 21CN. All rights reserved.
//
/**
定制版SDK v3.7.2 20191217
*/
#import <Foundation/Foundation.h>
#import "EAccountPreLoginConfigModel.h"
#import "EAccountCTEConfig.h"
/**
声明一个block
@param resultDic 网络返回的data的解析结果
*/
typedef void (^successHandler) ( NSDictionary * _Nonnull resultDic);
/**
声明一个block
@param error 网络返回的错误或者其它错误
*/
typedef void (^failureHandler) (NSError * _Nonnull error);
@interface EAccountSDK : NSObject
/**
初始化SDK
@param appKey 接入方在账号平台领取的appId
@param appSecrect 接入方在账号平台领取的appSecrect
*/
+ (void)initWithSelfKey:(NSString * _Nonnull)appKey
appSecret:(NSString * _Nonnull)appSecrect;
/**
默认为正式环境的bundleID,需要使用测试环境的bundleID(企业证书重签名),请添加这个方法,在发布APP的时候请确保没有使用该方法。
*/
+(void)setTestBundleId;
/**
*@description 预登录接口
@param model 接口超时时间配置
*/
+ (void)requestPRELogin:(EAccountPreLoginConfigModel * _Nonnull)model
completion:(nonnull successHandler)completion
failure:(nonnull failureHandler)fail;
/**
*@description 预登录接口
@param apiTimeoutInterval 接口超时时间,传0或者小于0的数,则默认为3s
*/
+ (void)requestPreLogin:(NSTimeInterval)apiTimeoutInterval
completion:(nonnull successHandler)completion
failure:(nonnull failureHandler)fail DEPRECATED_MSG_ATTRIBUTE("Please use `requestPRELogin:completion:failure:` instead");
/**
*@description 预登录接口 废弃
@param apiTimeoutInterval 接口超时时间,传0或者小于0的数,则默认为3s
*/
+ (void)getMobileCodeWithTimeout:(NSTimeInterval)apiTimeoutInterval
completion:(nonnull successHandler)completion
failure:(nonnull failureHandler)fail DEPRECATED_MSG_ATTRIBUTE("Please use `requestPreLogin:completion:failure:` instead");
+ (void)setDomainName:(EAccountCTEConfig *)config;
@end
//
// ZOAuthManager 能力接入管理者-提供加解密方法
// OAuthSDKApp
//
// Created by zhangQY on 2019/5/13.
// Copyright © 2019 com.zzx.sdk.ios.test. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSUInteger, ServiceType) {
ServiceTypeMobile,
ServiceTypeOAuth,
};
@interface ZOAuthManager : NSObject
/**
* 是否使用测试环境
*
* @param isDebug true/false
*/
+ (void) setDebug:(Boolean) isDebug ;
/**
* 是否使用SHA256
*
* @param schemeB true/false (默认是NO)
*/
+ (void) useSchemeBInSecurityModule:(BOOL)schemeB;
//设置UA
+ (void)setUAString:(NSString *)UAString;
//删除保存在本地的UA
+ (void)removeUAString;
//获取SDK版本信息
+ (NSString *)getVersionInfo;
@end
//
// ZTOAuthManager 电信能力接入管理者
// OAuthSDKApp
//
// Created by zhangQY on 2019/5/13.
// Copyright © 2019 com.zzx.sdk.ios.test. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ZOAuthManager.h"
@interface ZTOAuthManager : ZOAuthManager
/**
* 获取电信能力接入单例对象
*/
+ (instancetype)getInstance;
/**
* 初始化-电信
*/
- (void) init:(NSString*) apiKey pubKey:(NSString*)pubKey;
/**
* 取号-电信
*/
- (void) login:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
/**
* 清除缓存 ***注意***:SDK取号默认会使用缓存机制,请及时清理缓存;
*/
+ (BOOL)clearCTLoginCache;
/**
中断取号登录流程(按需使用)
取消取号请求
*/
- (void)tryToInterruptTheCTLoginFlow;
/**
* 认证-电信 ***注意***:在不手动关闭缓存的时,请及时调用清除缓存方法;
*/
- (void) oauth:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
/** 电信认证:是否关闭缓存策略(默认开启)
请注意及时调用clearOauthCache方法清除缓存;
手动关闭后,不必调用clearOauthCache;
@param yesOrNo 是否关闭电信认证缓存策略
*/
- (void) closeCTOauthCachingStrategy:(BOOL)yesOrNo;
/**
电信认证:
清除电信认证缓存策略中产生的缓存数据;
在手动关闭缓存策略时,不必调用;
*/
+ (BOOL) clearCTOauthCache;
/**
* (测试接口)获取登录/认证结果
*/
- (void) gmbc:(NSString*)accessCode mobile:(NSString *)mobile listener:(void (^)(NSDictionary *data))listener;
//释放SDK内部单例对象
-(void)ZOAURelease;
@end
//
// ZUOAuthManager 联通能力接入管理者
// OAuthSDKApp
//
// Created by zhangQY on 2019/5/13.
// Copyright © 2019 com.zzx.sdk.ios.test. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ZOAuthManager.h"
@interface ZUOAuthManager : ZOAuthManager
/**
* 获取联通能力接入单例对象
*/
+ (instancetype)getInstance;
/**
* 初始化-联通
*/
- (void) init:(NSString*) apiKey pubKey:(NSString*)pubKey;
/**
* 取号-联通
*/
- (void) login:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
/**
* 清除缓存 ***注意***:SDK取号默认会使用缓存机制,请及时清理缓存;
*/
+ (BOOL)clearCULoginCache;
/**
中断取号登录流程(按需使用)
取消取号请求
*/
- (void)tryToInterruptTheCULoginFlow;
/**
* 认证-联通
注意***:在不手动关闭缓存的时,请及时调用清除缓存方法
*/
- (void) oauth:(double)timeout resultListener:(void (^)(NSDictionary *data))listener;
/** 联通认证:是否关闭缓存策略(默认开启)
请注意及时调用clearOauthCache方法清除缓存;
手动关闭后,不必调用clearOauthCache;
@param yesOrNo 是否关闭联通认证缓存策略
*/
- (void) closeCUOauthCachingStrategy:(BOOL)yesOrNo;
/**
联通认证:
清除联通认证缓存策略中产生的缓存数据;
在手动关闭缓存策略时,不必调用;
*/
+ (BOOL) clearCUOauthCache;
/**
* 获取登录/认证结果
* 测试接口
*/
- (void) gmbc:(NSString*)accessCode mobile:(NSString *)mobile listener:(void (^)(NSDictionary *data))listener;
/**
* 测试接口
*/
- (void) gmbc:(NSString*)accessCode listener:(void (^)(NSDictionary *data))listener;
//释放SDK内部单例对象
-(void)ZOAURelease;
@end
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Headers/ZOAuthManager.h</key>
<data>
Bun83md0uveA8cIrtE31ZJYCthc=
</data>
<key>Headers/ZTOAuthManager.h</key>
<data>
W8L0JfrdTB9W3S5SdC2zPmM1Rlc=
</data>
<key>Headers/ZUOAuthManager.h</key>
<data>
tzyoPulBaM4s/LiEv8eFPDvr4+8=
</data>
<key>Info.plist</key>
<data>
2InJOhviyxiEUEDvWKLjWpx7JC4=
</data>
</dict>
<key>files2</key>
<dict>
<key>Headers/ZOAuthManager.h</key>
<dict>
<key>hash</key>
<data>
Bun83md0uveA8cIrtE31ZJYCthc=
</data>
<key>hash2</key>
<data>
6NM3+En9MHSJDwLVUUjZHCl8qV9REUn8vk5KJ9uUmz8=
</data>
</dict>
<key>Headers/ZTOAuthManager.h</key>
<dict>
<key>hash</key>
<data>
W8L0JfrdTB9W3S5SdC2zPmM1Rlc=
</data>
<key>hash2</key>
<data>
jxCbjRLpgvjUYA9vL11GYSnlW36YQGR75olIqQRLYgQ=
</data>
</dict>
<key>Headers/ZUOAuthManager.h</key>
<dict>
<key>hash</key>
<data>
tzyoPulBaM4s/LiEv8eFPDvr4+8=
</data>
<key>hash2</key>
<data>
qa2pFGssrYGjUwMIptLo7AfKEbJDG7Ueas7fRikyksI=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
//
// TYRZSDK.h
// TYRZSDK
//
#import "UASDKLogin.h"
#import "UASDKErrorCode.h"
#import "UACustomModel.h"
//
// UACustomModel.h
// Test
//
// Created by issuser on 2018/5/18.
// Copyright © 2018年 林涛. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSUInteger, UAPresentationDirection){
UAPresentationDirectionBottom = 0, //底部 present默认效果
UAPresentationDirectionRight, //右边 导航栏效果
UAPresentationDirectionTop, //上面
UAPresentationDirectionLeft, //左边
};
@interface UACustomModel : NSObject
/**
版本注意事项:
授权页面的各个控件的Y轴默认值都是以375*667屏幕为基准 系数 : 当前屏幕高度/667
1、当设置Y轴并有效时 偏移量OffsetY属于相对导航栏的绝对Y值
2、(负数且超出当前屏幕无效)为保证各个屏幕适配,请自行设置好Y轴在屏幕上的比例(推荐:当前屏幕高度/667)
*/
#pragma mark -----------------------------授权页面----------------------------------
#pragma mark VC必传属性
/**1、当前VC,注意:要用一键登录这个值必传*/
@property (nonatomic,weak) UIViewController *currentVC;
#pragma mark 自定义控件
/**2、授权界面自定义控件View的Block*/
@property (nonatomic,copy) void(^authViewBlock)(UIView *customView, CGRect numberFrame,CGRect loginBtnFrame, CGRect checkBoxFrame , CGRect privacyFrame);
/**3、 授权页面推出的动画效果:参考UAPresentationDirection枚举*/
@property (nonatomic, assign) UAPresentationDirection presentType;
/**4、授权界面背景图片*/
@property (nonatomic,strong) UIImage *authPageBackgroundImage;
/**5、自定义Loading View(回调默认关闭,如需自己控制关闭,则用keywindow并在一键登录回调中关闭)*/
@property (nonatomic,copy) void(^authLoadingViewBlock)(UIView *loadingView);
#pragma mark 登录按钮
/**6、登录按钮文本*/
@property (nonatomic,strong) NSAttributedString *logBtnText;
/**7、登录按钮Y偏移量*/
@property (nonatomic,strong) NSNumber * logBtnOffsetY;
/**8、登录按钮的左右边距 注意:按钮呈现的宽度在竖屏时必须大于屏幕的一半,横屏时必须大于屏幕的三分之一
示例:@[@50,@70] 只能两个元素
*/
@property (nonatomic, strong) NSArray <NSNumber *> *logBtnOriginLR;
/**9、登录按钮高h 注意:必须大于40*/
@property (nonatomic, assign) CGFloat logBtnHeight;
/**10、登录按钮背景图片添加到数组(顺序如下)
@[激活状态的图片,失效状态的图片,高亮状态的图片]
*/
@property (nonatomic,strong) NSArray *logBtnImgs;
/**11、登录按钮高距离底部的高度*/
@property (nonatomic, strong) NSNumber *logBtnOffsetY_B;
#pragma mark 号码框设置
/**12、手机号码(内容设置无效)*/
@property (nonatomic,strong) NSAttributedString *numberText;
/**13、号码栏X偏移量*/
@property (nonatomic,strong) NSNumber * numberOffsetX;
/**14、号码栏Y偏移量*/
@property (nonatomic,strong) NSNumber * numberOffsetY;
/**15、号码栏Y偏移量(基于底部)*/
@property (nonatomic,strong) NSNumber * numberOffsetY_B;
#pragma mark 隐私条款
/**16、复选框未选中时图片*/
@property (nonatomic,strong) UIImage *uncheckedImg;
/**17、复选框选中时图片*/
@property (nonatomic,strong) UIImage *checkedImg;
/**18、复选框大小(只能正方形)必须大于12*/
@property (nonatomic,assign) NSNumber *checkboxWH;
/**19、隐私条款(包括check框)的左右边距*/
@property (nonatomic, strong) NSArray <NSNumber *> *appPrivacyOriginLR;
/**20、隐私的内容模板:
1、全句可自定义但必须保留"&&默认&&"字段表明SDK默认协议,否则设置不生效
2、协议1和协议2的名称要与数组 str1 和 str2 ... 里的名称 一样
3、必设置项(参考SDK的demo)
appPrivacieDemo设置内容:登录并同意&&默认&&和&&百度协议&&、&&京东协议2&&登录并支持一键登录
展示: 登录并同意中国移动条款协议和百度协议1、京东协议2登录并支持一键登录
*/
@property (nonatomic, copy) NSAttributedString *appPrivacyDemo;
/**21、隐私条款默认协议是否开启书名号
*/
@property (nonatomic, assign) BOOL privacySymbol;
/**22、隐私条款文字内容的方向:默认是居左
*/
@property (nonatomic,assign) NSTextAlignment appPrivacyAlignment;
/**23、隐私条款:数组(务必按顺序)要设置NSLinkAttributeName属性可以跳转协议
对象举例:
NSAttributedString *str1 = [[NSAttributedString alloc]initWithString:@"百度协议" attributes:@{NSLinkAttributeName:@"https://www.baidu.com"}];
@[str1,,str2,str3,...]
*/
@property (nonatomic,strong) NSArray <NSAttributedString *> *appPrivacy;
/**24、隐私条款名称颜色(协议)统一设置
*/
@property (nonatomic,strong) UIColor *privacyColor;
/**25、隐私条款Y偏移量*/
@property (nonatomic,strong) NSNumber * privacyOffsetY;
/**26、隐私条款check框默认状态 默认:NO */
@property (nonatomic,assign) BOOL privacyState;
/**27、隐私条款Y偏移量(注:此属性为与屏幕底部的距离)*/
@property (nonatomic,strong) NSNumber *privacyOffsetY_B;
#pragma mark -----------------------------------协议页面-----------------------------------
/**28、web协议界面导航返回图标(尺寸根据图片大小)*/
@property (nonatomic,strong) UIImage *webNavReturnImg;
/**29、web协议界面导航标题字体属性设置
默认值:@{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont systemFontOfSize:16]}
*/
@property (nonatomic,strong) NSDictionary<NSAttributedStringKey, id> *webNavTitleAttrs;
/**30、web协议界面导航标题栏颜色*/
@property (nonatomic,strong) UIColor *webNavColor;
#pragma mark ----------------------弹窗:(温馨提示:由于受屏幕影响,小屏幕(5S,5E,5)需要改动字体和另自适应和布局)--------------------
#pragma mark --------------------------窗口模式1(居中弹窗) 弹框模式需要配合自定义坐标属性使用可自适应-----------------------------------
//务必在设置控件位置时,自行查看各个机型模拟器是否正常
/**温馨提示:
窗口1模式下,自动隐藏系统导航栏,并生成一个UILabel 其frame为(0,0,窗口宽*scaleW,44*scaleW)
返回按钮的frame查看51属性备注,添加在UILabel的center.y位置
*/
/**31、窗口模式开关*/
@property (nonatomic,assign) BOOL authWindow;
/**32、窗口模式推出动画
UIModalTransitionStyleCoverVertical, 下推
UIModalTransitionStyleFlipHorizontal,翻转
UIModalTransitionStyleCrossDissolve, 淡出
*/
@property (nonatomic,assign) UIModalTransitionStyle modalTransitionStyle;
/**33、自定义窗口弧度 默认是10*/
@property (nonatomic,assign) CGFloat cornerRadius;
/**34、自定义窗口宽-缩放系数(屏幕宽乘以系数) 默认是0.8*/
@property (nonatomic,assign) CGFloat scaleW;
/**35、自定义窗口高-缩放系数(屏幕高乘以系数) 默认是0.5*/
@property (nonatomic,assign) CGFloat scaleH;
#pragma mark -----------窗口模式2(边缘弹窗) UIPresentationController(可配合UAPresentationDirection动画使用)-----------
/**36、此属性支持半弹框方式与authWindow不同(此方式为UIPresentationController)设置后自动隐藏切换按钮*/
@property (nonatomic,assign) CGSize controllerSize;
/**37、状态栏着色样式(隐藏导航栏时设置)*/
@property (nonatomic,assign) UIStatusBarStyle statusBarStyle;
/**38、横竖屏默认属性*/
@property (nonatomic,assign) UIInterfaceOrientation faceOrientation;
@end
//
// UASDKErrorCode.h
// TYRZSDK
//
// Created by 谢鸿标 on 2018/10/24.
// Copyright © 2018 com.CMCC.iOS. All rights reserved.
//
#ifndef UASDKErrorCode_h
#define UASDKErrorCode_h
#import <Foundation/Foundation.h>
typedef NSString *UASDKErrorCode;
//成功
static UASDKErrorCode const UASDKErrorCodeSuccess = @"103000";
//数据解析异常
static UASDKErrorCode const UASDKErrorCodeProcessException = @"200021";
//无网络
static UASDKErrorCode const UASDKErrorCodeNoNetwork = @"200022";
//请求超时
static UASDKErrorCode const UASDKErrorCodeRequestTimeout = @"200023";
//未知错误
static UASDKErrorCode const UASDKErrorCodeUnknownError = @"200025";
//蜂窝未开启或不稳定
static UASDKErrorCode const UASDKErrorCodeNonCellularNetwork = @"200027";
//网络请求出错(HTTP Code 非200)
static UASDKErrorCode const UASDKErrorCodeRequestError = @"200028";
//非移动网关重定向失败
static UASDKErrorCode const UASDKErrorCodeWAPRedirectFailed = @"200038";
//无SIM卡
static UASDKErrorCode const UASDKErrorCodePhoneWithoutSIM = @"200048";
//Socket创建或发送接收数据失败
static UASDKErrorCode const UASDKErrorCodeSocketError = @"200050";
//用户点击了“账号切换”按钮(自定义短信页面customSMS为YES才会返回)
static UASDKErrorCode const UASDKErrorCodeCustomSMSVC = @"200060";
//显示登录"授权页面"被拦截(hooked)
static UASDKErrorCode const UASDKErrorCodeAutoVCisHooked = @"200061";
////预取号不支持联通
//static UASDKErrorCode const UASDKErrorCodeNOSupportUnicom = @"200062";
////预取号不支持电信
//static UASDKErrorCode const UASDKErrorCodeNOSupportTelecom = @"200063";
//服务端返回数据异常
static UASDKErrorCode const UASDKErrorCodeExceptionData = @"200064";
//CA根证书校验失败
static UASDKErrorCode const UASDKErrorCodeCAAuthFailed = @"200072";
//本机号码校验仅支持移动手机号
static UASDKErrorCode const UASDKErrorCodeGetMoblieOnlyCMCC = @"200080";
//服务器繁忙
static UASDKErrorCode const UASDKErrorCodeServerBusy = @"200082";
//ppLocation为空
static UASDKErrorCode const UASDKErrorCodeLocationError = @"200086";
//监听授权界面成功弹起
static UASDKErrorCode const UASDKSuccessGetAuthVCCode = @"200087";
//SDK正在处理
static UASDKErrorCode const UASDKErrorCodeHandling = @"200089";
//当前网络不支持取号
static UASDKErrorCode const UASDKErrorCodeUnsupportedNetwork = @"200096";
/**
获取错误码描述
@param code 错误码
@return 返回对应描述
*/
FOUNDATION_EXPORT NSString *UASDKErrorDescription(UASDKErrorCode code);
#endif /* UASDKErrorCode_h */
//
// UASDKLogin.h
// TYRZSDK
//
// Created by 谢鸿标 on 2018/10/11.
// Copyright © 2018 com.CMCC.iOS. All rights reserved.
//
#import <UIKit/UIKit.h>
#define UASDKVERSION @"quick_login_iOS_5.7.1"
@class UACustomModel;
NS_ASSUME_NONNULL_BEGIN
@interface UASDKLogin : NSObject
/**
SDK登录单例管理
*/
@property (nonatomic,class,readonly) UASDKLogin *shareLogin;
/**
网络类型及运营商(双卡下,获取上网卡的运营商)
"carrier" 运营商: 0.未知 / 1.中国移动 / 2.中国联通 / 3.中国电信
"networkType" 网络类型: 0.无网络/ 1.数据流量 / 2.wifi / 3.数据+wifi
@return @{NSString : NSNumber}
*/
@property (nonatomic,readonly) NSDictionary<NSString *, NSNumber *> *networkInfo;
/**
初始化SDK参数
@param appId 申请能力平台成功后,分配的appId
@param appKey 申请能力平台成功后,分配的appKey
*/
- (void)registerAppId:(NSString *)appId AppKey:(NSString *)appKey;
/**
设置超时
@param timeout 超时
*/
- (void)setTimeoutInterval:(NSTimeInterval)timeout;
/**
取号
@param completion 回调
*/
- (void)getPhoneNumberCompletion:(void(^)(NSDictionary *_Nonnull result))completion;
/**
一键登录,获取到的token,可传给移动认证服务端获取完整手机号
@param model 需要配置的Model属性(控制器必传)
@param completion 回调
*/
- (void)getAuthorizationWithModel:(UACustomModel *)model complete:(void (^)(id sender))completion;
/**
获取本机号码校验token
@param completion 回调
*/
- (void)mobileAuthCompletion:(void(^)(NSDictionary *_Nonnull result))completion;
/**
删除取号缓存数据 + 重置网络开关(自定义按钮事件里dimiss授权界面需调用)
@return YES:有缓存已执行删除操作,NO:无缓存不执行删除操作
*/
- (BOOL)delectScrip;
/**
控制台日志输出控制(默认关闭)
@param enable 开关参数
*/
- (void)printConsoleEnable:(BOOL)enable;
/**
关闭授权界面
@param flag 动画开关
@param completion 回调参数
*/
- (void)ua_dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion;
@end
NS_ASSUME_NONNULL_END
framework module TYRZSDK {
umbrella header "TYRZSDK.h"
export *
module * { export * }
}
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1100"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing = "YES"
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "6CEA38EC2E63D96E7179449F1279A773"
BuildableName = "CL_ShanYanSDK"
BlueprintName = "CL_ShanYanSDK"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
buildConfiguration = "Debug"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
......@@ -29,11 +29,6 @@
<key>isShown</key>
<false/>
</dict>
<key>CL_ShanYanSDK.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
</dict>
<key>IQKeyboardManager.xcscheme</key>
<dict>
<key>isShown</key>
......
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CL_ShanYanSDK
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/CL_ShanYanSDK/framework" $(inherited) $(PODS_ROOT)/CL_ShanYanSDK
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
OTHER_LDFLAGS = $(inherited) -ObjC -undefined dynamic_lookup -l"c++.1"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/CL_ShanYanSDK
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CL_ShanYanSDK
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/CL_ShanYanSDK/framework" $(inherited) $(PODS_ROOT)/CL_ShanYanSDK
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
OTHER_LDFLAGS = $(inherited) -ObjC -undefined dynamic_lookup -l"c++.1"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/CL_ShanYanSDK
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
......@@ -44,29 +44,6 @@ Copyright © 2014 AutoNavi. All Rights Reserved.
Copyright © 2014 AutoNavi. All Rights Reserved.
## CL_ShanYanSDK
Copyright (c) 2018 wanglijun311@gmail.com <CAODA19920605w>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
## IQKeyboardManager
MIT License
......
......@@ -85,35 +85,6 @@ THE SOFTWARE.
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2018 wanglijun311@gmail.com &lt;CAODA19920605w&gt;
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</string>
<key>License</key>
<string>LGPL</string>
<key>Title</key>
<string>CL_ShanYanSDK</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>MIT License
......
${PODS_ROOT}/Target Support Files/Pods-ZhiJi/Pods-ZhiJi-resources.sh
${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle
${PODS_ROOT}/CL_ShanYanSDK/framework/sdk_oauth.bundle
\ No newline at end of file
${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle
\ No newline at end of file
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AMap.bundle
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/sdk_oauth.bundle
\ No newline at end of file
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AMap.bundle
\ No newline at end of file
${PODS_ROOT}/Target Support Files/Pods-ZhiJi/Pods-ZhiJi-resources.sh
${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle
${PODS_ROOT}/CL_ShanYanSDK/framework/sdk_oauth.bundle
\ No newline at end of file
${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle
\ No newline at end of file
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AMap.bundle
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/sdk_oauth.bundle
\ No newline at end of file
${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AMap.bundle
\ No newline at end of file
......@@ -98,11 +98,9 @@ EOM
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_resource "${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle"
install_resource "${PODS_ROOT}/CL_ShanYanSDK/framework/sdk_oauth.bundle"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_resource "${PODS_ROOT}/AMap3DMap/MAMapKit.framework/AMap.bundle"
install_resource "${PODS_ROOT}/CL_ShanYanSDK/framework/sdk_oauth.bundle"
fi
mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
......
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
ARCHS = $(ARCHS_STANDARD)
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RTRootNavigationController" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_ROOT}/AMap3DMap" "${PODS_ROOT}/AMapFoundation" "${PODS_ROOT}/AMapLocation" "${PODS_ROOT}/AMapSearch" "${PODS_ROOT}/CL_ShanYanSDK/framework"
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RTRootNavigationController" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_ROOT}/AMap3DMap" "${PODS_ROOT}/AMapFoundation" "${PODS_ROOT}/AMapLocation" "${PODS_ROOT}/AMapSearch"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RTRootNavigationController/RTRootNavigationController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit/SwiftyStoreKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"c++.1" -l"z" -framework "AFNetworking" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CL_ShanYanSDK" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "EAccountApiSDK" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IQKeyboardManager" -framework "ImageIO" -framework "MAMapKit" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "OAuth" -framework "OpenGLES" -framework "QuartzCore" -framework "RTRootNavigationController" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "Security" -framework "SwiftyStoreKit" -framework "SystemConfiguration" -framework "TYRZSDK" -framework "UIKit" -framework "YYModel"
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AFNetworking" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IQKeyboardManager" -framework "ImageIO" -framework "MAMapKit" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "OpenGLES" -framework "QuartzCore" -framework "RTRootNavigationController" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "Security" -framework "SwiftyStoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "YYModel"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
......
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
ARCHS = $(ARCHS_STANDARD)
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RTRootNavigationController" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_ROOT}/AMap3DMap" "${PODS_ROOT}/AMapFoundation" "${PODS_ROOT}/AMapLocation" "${PODS_ROOT}/AMapSearch" "${PODS_ROOT}/CL_ShanYanSDK/framework"
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry" "${PODS_CONFIGURATION_BUILD_DIR}/RTRootNavigationController" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel" "${PODS_ROOT}/AMap3DMap" "${PODS_ROOT}/AMapFoundation" "${PODS_ROOT}/AMapLocation" "${PODS_ROOT}/AMapSearch"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/AFNetworking/AFNetworking.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD/MBProgressHUD.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJExtension/MJExtension.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh/MJRefresh.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry/Masonry.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RTRootNavigationController/RTRootNavigationController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDCycleScrollView/SDCycleScrollView.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyStoreKit/SwiftyStoreKit.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/YYModel/YYModel.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"c++.1" -l"z" -framework "AFNetworking" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CL_ShanYanSDK" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "EAccountApiSDK" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IQKeyboardManager" -framework "ImageIO" -framework "MAMapKit" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "OAuth" -framework "OpenGLES" -framework "QuartzCore" -framework "RTRootNavigationController" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "Security" -framework "SwiftyStoreKit" -framework "SystemConfiguration" -framework "TYRZSDK" -framework "UIKit" -framework "YYModel"
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -l"z" -framework "AFNetworking" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapSearchKit" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreTelephony" -framework "CoreText" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IQKeyboardManager" -framework "ImageIO" -framework "MAMapKit" -framework "MBProgressHUD" -framework "MJExtension" -framework "MJRefresh" -framework "Masonry" -framework "OpenGLES" -framework "QuartzCore" -framework "RTRootNavigationController" -framework "SDCycleScrollView" -framework "SDWebImage" -framework "Security" -framework "SwiftyStoreKit" -framework "SystemConfiguration" -framework "UIKit" -framework "YYModel"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
......
This diff is collapsed.
......@@ -8,20 +8,16 @@
#import "AppDelegate.h"
#import "KeychainItemManager.h"
#import "ZJOauthLoginManager.h"
#import "ZJAESCommonCrypto.h"
#import "BaseTabBarViewController.h"
#import "ZJGuideConfig.h"
#import "GuideViewController.h"
#import "ZhiJi-Swift.h"
#import "ZJUserInfoManager.h"
#import <AMapFoundationKit/AMapFoundationKit.h>
#import "TQNetworkTools.h"
#import "WXApi.h"
//#import "WXApiManager.h"
@interface AppDelegate ()<WXApiDelegate>
@interface AppDelegate ()
@end
......@@ -31,12 +27,7 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// [WXApi registerApp:@"wxb4ba3c02aa476ea1"];
if([WXApi registerApp:WXAppId universalLink:WXUniversalLink]){
NSLog(@"初始化成功");
}
[self initializeIQKeyboardManager];
[AMapServices sharedServices].apiKey = @"501f8a894329f4b57bbfee208a11676f";
......@@ -47,20 +38,34 @@
[KeychainItemManager ReadUUIDAndNickName];
[ZTPurchaseManager launchWithSwiftyStoreKit];
//创蓝
[ZJOauthLoginManager initWithShanYanAppID:ShanYanAppID];
self.window = [[UIWindow alloc] init];
self.window.frame = [UIScreen mainScreen].bounds;
self.window.backgroundColor = [UIColor whiteColor];
// self.window.rootViewController = [[GuideViewController alloc] init];
//guide setting
[ZJGuideConfig configWithWindow:self.window finishMainVC:[BaseTabBarViewController new]];
BaseTabBarViewController * tabbar = [[BaseTabBarViewController alloc] init];
tabbar.launch = YES;
[ZJGuideConfig configWithWindow:self.window finishMainVC:tabbar];
[self logCollection];
[self.window makeKeyAndVisible];
return YES;
}
- (void)logCollection {
NSMutableDictionary *dict = @{@"event": @"guazinovel", @"action": @"app_start", @"value": @""}.mutableCopy;
Data * data = [[Data alloc] init];
if ([[data Read] objectForKey:@"idfa"]) {
[dict setValue:[[data Read] objectForKey:@"idfa"] forKey:@"idfa"];
}
[[TQNetworkTools shared] postWithLogCollection:logCollection parameters: dict success:^(__autoreleasing id *response) {
} failure:^(NSError * _Nonnull error) {
}];
}
- (void)initializeIQKeyboardManager{
IQKeyboardManager *keyboardManager = [IQKeyboardManager sharedManager]; // 获取类库的单例变量
keyboardManager.enable = YES; // 控制整个功能是否启用
......@@ -74,20 +79,15 @@
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
BOOL result = [WXApi handleOpenURL:url delegate:self];
// return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
return result;
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
BOOL result = [WXApi handleOpenURL:url delegate:self];
// return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
return result;
return YES;
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
// return YES;
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication*)application{
......
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "底框@2x(1).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "底框@3x(1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "搜索@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "搜索@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "形状 8@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "形状 8@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "icon@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "icon@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 1 拷贝@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 1 拷贝@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "搜索@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "搜索@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
//
// ZJBaseCareViewController.h
// ZhiJi
//
// Created by 明津李 on 2020/6/28.
// Copyright © 2020 Company. All rights reserved.
//
#import "BaseViewController.h"
#import "ZJTableViewCell.h"
#import "ZJJinJiViewController.h"
#import "ZJBasetableView.h"
#import "ZJXiaoXiViewController.h"
#import "ZJTianJiaViewController.h"
#import "ZhiJi-Swift.h"
#import "UIButton+Category.h"
#import "ZJFriendSettingView.h"
#import "AlertControllerTool.h"
#import "ZJFriendTrackMapViewController.h"
#import <CoreLocation/CoreLocation.h>
#import "ZJZMFAPIFactory.h"
#import "ZJUserInfoManager.h"
#import "ZJFriendModel.h"
#import "ZJLocationModel.h"
#import "ZJFriendLocationRemindModel.h"
#import "ZJOauthLoginConfig.h"
#import "ZJUpgradeAlertView.h"
#import "ZJZhiFuViewController.h"
#import "JZLocationConverter.h"
NS_ASSUME_NONNULL_BEGIN
static NSString *ID = @"id";
@interface ZJBaseCareViewController : BaseViewController
@property (nonatomic ,strong) UIButton *xiaoXiButton;
@property (nonatomic ,strong) UIView *xiaoXiRedPoint;
@property (nonatomic ,strong) UIButton *jinJiButton;
@property (nonatomic ,strong) ZJBasetableView *memberTableView;
@property (nonatomic ,strong) CLLocationManager *locationManager;
@property (nonatomic ,strong) NSMutableArray<ZJFriendModel *> * friendDataSource;
- (void)getFriendList;
- (void)updateMySelf:(CLPlacemark *)placemark;
- (NSString *)currentDate;
- (void)setUI;
- (void)showFriendSet:(ZJFriendModel *)model;
- (void)showUpgradeLlert;
@end
NS_ASSUME_NONNULL_END
This diff is collapsed.
//
// ZJCareStyle2ViewController.h
// ZhiJi
//
// Created by 明津李 on 2020/6/28.
// Copyright © 2020 Company. All rights reserved.
//
#import "ZJBaseCareViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface ZJCareStyle2ViewController : ZJBaseCareViewController
@end
NS_ASSUME_NONNULL_END
This diff is collapsed.
......@@ -6,14 +6,11 @@
// Copyright © 2020 Company. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "BaseViewController.h"
#import "ZJBaseCareViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface ZJCareViewController : BaseViewController
- (void)checkAndRequestLocationService;
@interface ZJCareViewController : ZJBaseCareViewController
@end
......
......@@ -117,7 +117,7 @@
#pragma mark 发送信息给所有紧急联系人
- (void)sendAllEmergencyContact{
if ([ZJUserInfoManager shared].isTourist) {
if (![ZJUserInfoManager shared].isLogin) {
// [MBProgressHUD showMessage:@"请先进行登录"];
ZJOauthLoginConfig * config = [[ZJOauthLoginConfig alloc] initWithCurrentVC:self];
[config loginVerify:^(id _Nonnull model) {
......@@ -147,7 +147,7 @@
#pragma mark 获取紧急联系人list
- (void)getEmergencyContactList{
if ([ZJUserInfoManager shared].isTourist) {
if (![ZJUserInfoManager shared].isLogin) {
//未登录
return;
}
......
......@@ -11,7 +11,6 @@
#import "UITextField+LimitLength.h"
#import "AlertControllerTool.h"
#import "BaseWebViewController.h"
#import "WXApi.h"
#import "ZJUserInfoManager.h"
#import "ZJZhiFuViewController.h"
#import "AlertControllerTool.h"
......@@ -66,7 +65,7 @@
- (void)viewDidLoad {
[super viewDidLoad];
[self setUI];
if (![ZJUserInfoManager shared].isTourist) {
if (!![ZJUserInfoManager shared].isLogin) {
[self getHintStyle];
}
}
......@@ -315,7 +314,7 @@
make.size.mas_offset(CGSizeMake(KScaleWidth(24), KScaleWidth(24)));
}];
if(![WXApi isWXAppInstalled]){
if(![ZJShareManager installed]){
self.weiXinImageView.hidden = YES;
}
}
......@@ -351,7 +350,7 @@
[self shareWX];
}
// if ([ZJUserInfoManager shared].isTourist) {
// if (![ZJUserInfoManager shared].isLogin) {
// ZJOauthLoginConfig * config = [[ZJOauthLoginConfig alloc] initWithCurrentVC:self];
// [config loginVerify:^(id _Nonnull model) {
// if ([model isKindOfClass:[ZJMineUserInfoModel class]] ) {
......@@ -376,27 +375,7 @@
- (void)shareWX{
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *appCurName = [infoDictionary objectForKey:@"CFBundleName"];
NSDictionary * dic = [ZJUserInfoManager shared].h5_url;
NSString * shareUrl = [NSString stringWithFormat:@"%@?headImage=%@&phoneNo=%@&shareCode=%@", [dic objectForKey:@"invite"], [ZJUserInfoManager shared].userInfoModel.headImage, [ZJUserInfoManager shared].userInfoModel.phoneNo, [ZJUserInfoManager shared].userInfoModel.shareCode];
WXWebpageObject *webpageObject = [WXWebpageObject object];
webpageObject.webpageUrl = shareUrl;
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"邀请好友";
message.description = [NSString stringWithFormat:@"邀请您成为%@APP好友", appCurName];
// [message setThumbImage:[UIImage imageNamed:@"缩略图.jpg"]];
message.mediaObject = webpageObject;
SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
req.bText = NO;
req.message = message;
req.scene = WXSceneSession;
// [WXApi sendReq:req];
[WXApi sendReq:req completion:^(BOOL success) {
}];
//invite
}
- (void)fanHuiButtonClick{
......@@ -481,7 +460,7 @@
[self.invitaButton setTitle:@"微信邀请" forState:0];
[self.invitaButton setTitle:@"微信邀请" forState:UIControlStateSelected];
self.invitaButton.selected = NO;
if(![WXApi isWXAppInstalled]){
if(![ZJShareManager installed]){
[self.invitaButton setTitle:@"邀请好友" forState:0];
[self.invitaButton setTitle:@"邀请好友" forState:UIControlStateSelected];
}
......
......@@ -13,6 +13,7 @@ class ZJLocationVC: UIViewController {
@objc public var shareButtonAction:(() -> Void)?
@IBOutlet weak var shareAppButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
title = "定位Ta教程"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -26,4 +26,8 @@ typedef NS_ENUM(NSUInteger, DYTTabBarIndex) {
@property (nonatomic,assign) DYTTabBarIndex DYTSelectIndex;
@property (nonatomic, strong) NSMutableArray *itemsArray;
@property (nonatomic, assign) BOOL launch;
- (void)updateChildVC;
@end
......@@ -43,7 +43,6 @@
make.size.mas_offset(CGSizeMake(KScaleWidth(76), KScaleWidth(76)));
}];
//添加子控制器
[arrM addObject:[self addChildViewControllerWithClassName:@"ZJCareViewController" andTitle:@"我关心的人" andImageName:@"关心"]];
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment