Files
tra-app/Ios/SDK/inc/PDRToolSystemEx.h

381 lines
12 KiB
Objective-C

/*
*------------------------------------------------------------------
* pandora/tools/PDRToolSystemEx.h.h
* Description:
* 获取设备信息头文件
* DCloud Confidential Proprietary
* Copyright (c) Department of Research and Development/Beijing/DCloud.
* All Rights Reserved.
*
* Changelog:
* number author modify date modify record
* 0 xty 2013-1-10 创建文件
*------------------------------------------------------------------
*/
#import <CoreGraphics/CoreGraphics.h>
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import <SystemConfiguration/SystemConfiguration.h>
#import <CoreText/CoreText.h>
#define PT_IsAtLeastiOSVersion(X) ([[[UIDevice currentDevice] systemVersion] compare:X options:NSNumericSearch] != NSOrderedAscending)
#define PT_IsIPad() ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] && ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad))
/*
**@获取系统时间
*/
@interface PTDate : NSObject
+(PTDate*)date;
@property(nonatomic, readonly)NSInteger year;
@property(nonatomic, readonly)SInt8 month;
@property(nonatomic, readonly)SInt8 day;
@property(nonatomic, readonly)SInt8 hour;
@property(nonatomic, readonly)SInt8 minute;
@property(nonatomic, readonly)double sencond;
@property(nonatomic, readonly)double milliseconds;
+(NSDate*)dateWithYear:(NSInteger)year month:(NSInteger)month day:(NSInteger)day;
+(NSDate*)dateWithHour:(NSInteger)hour minute:(NSInteger)minute sencond:(NSInteger)sencond;
@end
/*
**@采集网络的相关信息,域名为plus.device
*/
typedef NS_ENUM(NSInteger, PTNetType) {
PTNetTypeUnknow = 0,
PTNetTypeNone, // none
PTNetTypeEthernet, // none
PTNetTypeWIFI, // wifi
PTNetTypeCell2G, // 2G
PTNetTypeCell3G, // 3G
PTNetTypeCell4G, // 4G
PTNetTypeWWAN // 2g/3g
};
typedef void (^PTNetInfoNetChangeCallback)(PTNetType newNetType, PTNetType oldNetType);
@interface PTNetInfo : NSObject
@property(nonatomic, readonly)PTNetType netType;
+ (instancetype)info;
- (BOOL)startNotifierWithCallback:(SCNetworkReachabilityCallBack)reachabilityCallback;
- (BOOL)startNotifierWithBlock:(PTNetInfoNetChangeCallback)reachabilityCallback;
- (void)stopNotifier;
+ (instancetype)reachabilityForInternetConnection;
@end
/*
**@采集手机硬件的相关信息,域名为plus.device
*/
@interface PTDeviceInfo : NSObject
//国际移动设备身份码
@property(nonatomic, retain)NSString *IMEI;
//国际移动用户识别码
@property(nonatomic, retain)NSString *IMSI;
//设备型号
@property(nonatomic, retain)NSString *model;
//生产厂商
@property(nonatomic, retain)NSString *vendor;
@property(nonatomic, retain)NSString *UUID;
//移动网络国家类型,Mobile Country Code
@property(nonatomic, retain)NSString *mcc;
//"运营商代号,Mobile Country Code"
@property(nonatomic, retain)NSString *mnc;
@property(nonatomic, retain)NSString *mac;
+(PTDeviceInfo*)deviceInfo;
+ (NSString*)openUUID;
+ (NSString*)uniqueAppInstanceIdentifier;
@end
typedef NS_ENUM(NSInteger, PTSystemVersion) {
PTSystemVersion5Series = 0,
PTSystemVersion6Series,
PTSystemVersion7Series,
PTSystemVersion8Series,
PTSystemVersion9Series,
PTSystemVersion10Series,
PTSystemVersion11Series,
PTSystemVersionUnknown
};
typedef NS_ENUM(NSInteger, PTDeviceType) {
PTDeviceTypeiPhoneSimulator,
PTDeviceTypeiPhone3G,
PTDeviceTypeiPhone3GS,
PTDeviceTypeiPhone4,
PTDeviceTypeiPhone4s,
PTDeviceTypeiPhone5,
PTDeviceTypeiPhone5c,
PTDeviceTypeiPhone5s,
PTDeviceTypeiPhone6,
PTDeviceTypeiPhone6Plus,
PTDeviceTypeiPhone6s,
PTDeviceTypeiPhone6sPlus,
PTDeviceTypeiPhone7,
PTDeviceTypeiPhone7Plus,
PTDeviceTypeiPhone8,
PTDeviceTypeiPhone8Plus,
PTDeviceTypeiPhoneX,
PTDeviceTypeiPhoneXR,
PTDeviceTypeiPhoneXS,
PTDeviceTypeiPhoneXSMax,
PTDeviceTypeiPhoneSE,
PTDeviceTypeiPod3G,
PTDeviceTypeiPod4G,
PTDeviceTypeiPod5G,
PTDeviceTypeiPad5,
PTDeviceTypeiPad6,
PTDeviceTypeiPadPro,
PTDeviceTypeiPadAir2,
PTDeviceTypeiPadAir,
PTDeviceTypeNewiPad,
PTDeviceTypeiPad3,
PTDeviceTypeiPad2,
PTDeviceTypeiPad1,
PTDeviceTypeiPadMini4,
PTDeviceTypeiPadMini3,
PTDeviceTypeiPadMini2,
PTDeviceTypeiPadMini1,
PTDeviceTypeiAppleTV,
PTDeviceTypeiUnknown
};
/*
**@采集手机操作系统的相关信息,域名为plus.os
*/
@interface PTDeviceOSInfo : NSObject
//操作系统语言
@property(nonatomic, retain)NSString *language;
//操作系统版本号
@property(nonatomic, retain)NSString *version;
//操作系统名称
@property(nonatomic, retain)NSString *name;
//操作系统提供商
@property(nonatomic, retain)NSString *vendor;
+(NSString*)deviceUtsname;
+ (NSString*)getPreferredLanguage;
+ (PTDeviceOSInfo*)osInfo;
+ (PTSystemVersion)systemVersion;
+ (PTDeviceType)deviceType;
+ (NSString*)deviceTypeInString;
+ (NSString*)cuntryCode;
+ (BOOL)is7Series;
+ (BOOL)is6Series;
+ (BOOL)is5Series;
+ (BOOL)isIpad;
@end
/*
**@采集手机自身屏幕的相关分辨率等信息,域名为plus.screen
*/
@interface PTDeviceScreenInfo : NSObject
//屏幕高度
@property(nonatomic, assign)CGFloat resolutionHeight;
//屏幕宽度
@property(nonatomic, assign)CGFloat resolutionWidth;
//屏幕物理高度
@property(nonatomic, assign)CGFloat height;
//屏幕物理宽度
@property(nonatomic, assign)CGFloat width;
//X方向上的密度
@property(nonatomic, assign)CGFloat dpiX;
//Y方向上的密度
@property(nonatomic, assign)CGFloat dpiY;
@property(nonatomic, assign)CGFloat scale;
+(PTDeviceScreenInfo*)screenInfo;
@end
/*
**@采集手机自身屏幕的相关分辨率等信息,域名为plus.screen
*/
@interface PTDeviceDisplayInfo : NSObject
//应用可用区域
@property (nonatomic, assign)CGRect displayRect;
//应用可用高度
@property(nonatomic, assign)CGFloat resolutionHeight;
//应用可用宽度
@property(nonatomic, assign)CGFloat resolutionWidth;
- (CGRect)displayRect;
+(PTDeviceDisplayInfo*)displayInfo;
+(PTDeviceDisplayInfo*)displayInfoWith:(UIInterfaceOrientation)orientation;
@end
@interface PTDevice : NSObject
{
PTDeviceInfo *_deviceInfo;
PTDeviceOSInfo *_osInfo;
PTDeviceScreenInfo *_screenInfo;
PTDeviceDisplayInfo *_displayInfo;
PTNetInfo *_netInfo;
}
+(PTDevice*)sharedDevice;
-(void)update;
@property(nonatomic, retain)PTDeviceInfo *deviceInfo;
@property(nonatomic, retain)PTDeviceOSInfo *osInfo;
@property(nonatomic, retain)PTDeviceScreenInfo *screenInfo;
@property(nonatomic, retain)PTDeviceDisplayInfo *displayInfo;
/*@property(nonatomic, retain)PTNetInfo *netInfo;*/
+(long long)getAvailableMemorySize;
+(long long)getUseMemorySize;
+ (void)setDeviceInterfaceOrientation:(UIInterfaceOrientation)orientation;
@end
@interface NSString(Measure)
- (BOOL)isAlphaNumeric;
- (int)getMeasure:(CGFloat*)aOutValue withStaff:(CGFloat)aStaff;
@end
@interface UIColor(longColor)
-(NSString*)CSSColor:(BOOL)hasAlpha;
+(UIColor*)colorWithLong:(long)colorValue;
+(UIColor*)colorWithCSS:(NSString*)cssColor;
+(CGFloat)alphWithCSS:(NSString*)cssColor;
@end
@interface CAMediaTimingFunction(Util)
+(CAMediaTimingFunction*)curveEnum2Obj:(UIViewAnimationCurve)curve;
@end
@interface PTGIF :NSObject
@property(nonatomic, retain, readonly)NSArray *frames;
@property(nonatomic, retain, readonly)NSArray *delayTimes;
+ (instancetype)praseGIFData:(NSData *)data;
+ (instancetype)createGifWithFrames:(NSArray *)f withDelayTimes:(NSArray*)delayTimes;
@end
@interface NSDate (DateFormater)
+ (NSDate*)dateFromString:(NSString*)dateStr;
+ (NSString*)stringFrmeDate:(NSDate*)date;
//根据格式把时间转为字符串(默认使用本地所在时区)
- (NSString *)stringWithFormat:(NSString*)fmt;
@end
typedef NS_ENUM(NSInteger, UIImageCheckImageIsPureWhiteOption) {
UIImageCIWTop22 = 0,//从顶部向下偏移22px横线截屏检测渲染是否完成
UIImageCIWBottom22 = 1,//-从底部向上偏移25px横线检测渲染是否完成
UIImageCIWCenter = 2,//-从中间横线检测渲染是否完成
UIImageCIWAuto = 3,//为全屏检测(左、中、右三条竖线)
UIImageCIWFull = 4 // 为全屏检测
};
//导航图标旋转接口
@interface UIImage(Util)
- (UIImage *)adjustOrientation;
- (UIImage*)adjustOrientationToup;
- (UIImage*)imageRotatedByDegrees:(CGFloat)degrees
supportRetina:(BOOL)support
scale:(CGFloat)scale;
+ (UIImage*)screenshot:(UIView*)view clipRect:(CGRect)shotRect;
- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size;
+ (BOOL)checkImageIsPureWhite:(UIImage*)image;
+ (NSData*)compressImageData:(NSData*)srcData toMaxSize:(long)maxSize;
+ (UIImage*)dcloud_imageWithContentsOfFile:(NSString *)path;
+ (BOOL)checkImageIsPureWhite:(UIImage*)image option:(UIImageCheckImageIsPureWhiteOption)option;
@end
@interface NSString (WBRequest)
- (NSString*)urlEncode;
- (NSString *)URLDecodeStringEx;
- (NSString *)URLEncodedStringEx;
- (NSString *)URLDecodedStringWithCFStringEncodingEx:(CFStringEncoding)encoding;
- (NSString *)URLEncodedStringWithCFStringEncodingEx:(CFStringEncoding)encoding;
/**
* 判断字符串中是否有中文,如果有则将中文转码
*/
- (NSString *)URLChineseEncode;
- (NSString *)convertToMD5;
- (BOOL)isWebUrlString;
@end
@interface PTTool : NSObject
+ (BOOL)setSkipBackupAttribute:(BOOL)skip toItemAtURL:(NSURL*)URL;
+ (NSDictionary*)merge:(NSDictionary*)merge to:(NSDictionary*)to;
@end
@interface NSData (AES)
- (NSData *)AESEncryptWithKey:(NSString *)key;
- (NSData *)AESEncryptWithKey128:(NSString *)key;
- (NSData *)AESDecryptWithKey:(NSString *)key;
- (NSData *)AESDecryptWithKey128:(NSString *)key;
+ (NSData *)compressData:(NSData*)uncompressedData;
- (NSData *)compressData:(NSData*)uncompressedData;
@end
typedef NS_ENUM(NSInteger, H5CoreToolDirection) {
H5CoreToolDirectionDown,
H5CoreToolDirectionUp,
H5CoreToolDirectionLeft,
H5CoreToolDirectionRight,
H5CoreToolDirectionUnknown
};
extern NSString *kDCCoreToolFontMetaKeyName;
extern NSString *kDCCoreToolFontMetaKeyTraits;
@interface H5CoreTool : NSObject
+ (NSString*)dynamicLoadFont:(NSString*)fontFilePath;
+ (NSString*)dynamicLoadFontUseCache:(NSString*)newPath;
+ (NSDictionary*)dynamicLoadFontMeta:(NSString*)fontFilePath;
+ (NSDictionary*)dynamicLoadFontMetaUseCache:(NSString*)newPath;
+ (H5CoreToolDirection)determineDirection:(CGPoint)translation;
+ (void)getLocationTestAuthentication:(BOOL)testAuthentication withReslutBlock:(void(^)(NSDictionary*, NSError*))block;
@end
@interface H5TextCheck :NSObject
+ (BOOL)isTelephone:(NSString*)value;
+ (BOOL)isEmail:(NSString*)value;
@end
@interface UIFont(H5Tool)
+(CGFloat)piexl2Size:(CGFloat)piexl;
@end
@interface NSArray(DCAdd)
-(BOOL)dc_containsStringCaseInsensitive:(NSString*)testString;
@end
typedef NS_ENUM(NSInteger, PDRCoreAppSSLActive) {
PDRCoreAppSSLActiveAllow = 0,
PDRCoreAppSSLActiveWarning,
PDRCoreAppSSLActiveRefuse
};
@interface NSObject(DCFlgs)
- (void)dc_destoryFlgs;
- (void)dc_mask_set:(int)flg;
- (BOOL)dc_mask_test:(int)flg;
- (void)dc_mask_clear:(int)flg;
- (void)dc_mask2_set:(int)flg;
- (BOOL)dc_mask2_test:(int)flg;
- (void)dc_mask2_clear:(int)flg;
+ (void)dc_mask:(NSUInteger)store clear:(int)flg;
+ (BOOL)dc_mask:(NSUInteger)store test:(int)flg;
+ (void)dc_mask:(NSUInteger)store set:(int)flg;
@end
#ifdef __cplusplus
extern "C" {
#endif
int PT_Parse_GetMeasurement( NSObject* aMeasure, CGFloat aStaff, CGFloat * aOutMeasureValue );
CGSize DCT_CGSizeSwap(CGSize);
CGRect DCT_CGRectEdgeInsets(CGRect, UIEdgeInsets);
CGRect tDCT_CGRectEdgeInsets(CGRect, UIEdgeInsets,CGFloat);
CGRect jDCT_CGRectEdgeInsets(CGRect, CGFloat,CGFloat);
#ifdef __cplusplus
}
#endif