smssdk更新

This commit is contained in:
kai60
2021-07-03 20:49:02 +08:00
parent 14ab3bf6ab
commit 3f5ee249b5
52 changed files with 1309 additions and 446 deletions
@@ -0,0 +1,38 @@
//
// IMOBBaseUser.h
// MOBFoundation
//
// Created by 冯鸿杰 on 2017/9/5.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "IMOBFDataModel.h"
/**
基础用户信息
*/
@protocol IMOBBaseUser <IMOBFDataModel>
/**
获取用户ID
@return 用户ID
*/
- (NSString *)uid;
/**
获取用户头像
@return 头像
*/
- (NSString *)avatar;
/**
获取用户昵称
@return 昵称
*/
- (NSString *)nickname;
@end
@@ -0,0 +1,88 @@
//
// IJIMDataModel.h
// Jimu
//
// Created by 冯鸿杰 on 17/2/10.
// Copyright © 2017年 Mob. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
数据模型协议
*/
@protocol IMOBFDataModel <NSObject>
@required
/**
初始化数据模型
@param dict 初始化数据
@return 数据模型
*/
- (instancetype)initWithDict:(NSDictionary *)dict;
/**
设置数据
@param data 数据
@param key 名称
*/
- (void)set:(id)data key:(NSString *)key;
/**
获取数据
@param key 名称
*/
- (id)get:(NSString *)key;
/**
返回一个字典结构
@return 字段数据对象
*/
- (NSDictionary *)dictionaryValue;
/**
返回字段映射字典
说明:类如果实现此方法,并返回映射字典,在使用initWithDict初始化时,则会按照映射查找属性;key 为真正想要设定的、存在的属性 ,value为需要映射的字段
@return 字段映射字典
*/
+ (NSDictionary <NSString *, NSString *> *)propertyMappingDictionary;
/**
当类中有属性为数组,且数组元素同为MOBFDataModel时,应该置制定该属性属性及其元素类型
例如有 @property NSArray <OtherDataModel *> *array;
应主动实现本方法,并返回 @{@"array" : @"OtherDataModel"}
@return 映射配置
*/
+ (NSDictionary <NSString *, NSString *> *)elementTypeOfCollectionPropertyDictionary;
/**
当属性定义类型不支持从原始数据直接转换时触发此方法,该方法默认返回nil,表示不进行转换
@param rawData 原始数据
@param targetType 目标类型
@param propertyName 属性名称
@return 目标类型对象
*/
+ (id)unsupportTypeWithRawData:(id)rawData
targetType:(Class)targetType
propertyName:(NSString *)propertyName;
/**
当设置属性对象不支持转化为原始数据时触发此方法,默认返回nil,表示不进行转换
@param object 对象
@param propertyName 属性名称
@return 原始数据,仅包含NSDictionary、NSArray、NSString、NSNumber类型的返回。
*/
+ (id)rawDataWithUnsupportTypeObject:(id)object
propertyName:(NSString *)propertyName;
@end
@@ -15,6 +15,14 @@
*/
@interface MOBFData : NSObject
/**
将一个NSData对象转换为NSString对象,处理由于结束符导致json解析错误问题
@param data 原始data
@return 处理后字符串
*/
+ (NSString *)stringByData:(NSData *)data;
/**
* 使用HMAC-SHA1进行加密
*
@@ -25,6 +33,15 @@
*/
+ (NSData *)hmacSha1Data:(NSData *)data forKey:(NSData *)key;
/**
使用HMAC-MD5进行签名
@param data 原始数据
@param key 密钥
@return 加密后数据
*/
+ (NSData *)hmacMd5Data:(NSData *)data forKey:(NSData *)key;
/**
* 对数据进行MD5签名
*
@@ -0,0 +1,18 @@
//
// MOBFDataModel.h
// MOBFoundation
//
// Created by 冯鸿杰 on 17/2/15.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "IMOBFDataModel.h"
/**
数据模型
*/
@interface MOBFDataModel : NSObject <IMOBFDataModel,
NSCoding>
@end
@@ -121,4 +121,13 @@
minute:(NSInteger)minute
second:(NSInteger)second;
/**
* 0点毫秒数
*
* @return 0点毫秒数
*/
+ (NSTimeInterval)zeroTimeInterval;
@end
@@ -8,6 +8,9 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
extern NSString *kMOBFReachabilityChangedNotification;
/**
* 网络类型
@@ -58,6 +61,14 @@ typedef NS_ENUM(NSUInteger, MOBFIPVersion)
*/
@interface MOBFDevice : NSObject
/**
* 获取单例的 CTTelephonyNetworkInfo
*
* @return CTTelephonyNetworkInfo
*/
+ (CTTelephonyNetworkInfo *)networkInfo;
/**
* 获取网卡物理地址
*
@@ -79,6 +90,13 @@ typedef NS_ENUM(NSUInteger, MOBFIPVersion)
*/
+ (MOBFNetworkType)currentNetworkType;
/**
* 获取当前网络类型字符串
*
* @return 网络类型
*/
+ (NSString *)currentNetworkTypeStr;
/**
* 获取手机运营商代码
*
@@ -165,13 +183,6 @@ typedef NS_ENUM(NSUInteger, MOBFIPVersion)
*/
+ (NSString *)bssid;
/**
* 获取广告商ID
*
* @return 广告商ID
*/
+ (NSString *)idfa;
/**
* 获取当前语言
*
@@ -193,4 +204,39 @@ typedef NS_ENUM(NSUInteger, MOBFIPVersion)
*/
+ (NSString *)idfv;
/**
* 获取物理内存
@return 物理内存
*/
+ (double)physicalMemory;
/**
* 获取存储大小
@return 存储大小
*/
+ (long long)diskSpace;
/**
* cpu 类型
*
* @return cpu 类型
*/
+ (NSString *)cpuType;
/**
* 获取无线局域网的强度
*
* @return 强度 3: 强 2:中, 1:弱 ,无
*/
+ (int)wifiLevel;
/**
* 获取原始当前网络类型
*
* @return 网络类型
*/
+ (NSString *)currentDataNetworkType;
@end
@@ -53,6 +53,14 @@ typedef void(^MOBFHttpFaultEvent) (NSError *error);
*/
typedef void(^MOBFHttpUploadProgressEvent) (int64_t totalBytes, int64_t loadedBytes);
/**
* HTTP下载数据事件
*
* @param totalBytes 总字节数
* @param loadedBytes 上传字节数据
*/
typedef void(^MOBFHttpDownloadProgressEvent) (int64_t totalBytes, int64_t loadedBytes);
/**
* HTTP服务类
*/
@@ -168,6 +176,20 @@ typedef void(^MOBFHttpUploadProgressEvent) (int64_t totalBytes, int64_t loadedBy
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
/**
发送请求
@param resultHandler 返回回调
@param faultHandler 错误回调
@param uploadProgressHandler 上传数据进度回调
@param downloadProgressHandler 下载数据进度回调
*/
- (void)sendRequestOnResult:(MOBFHttpResultEvent)resultHandler
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler
onDownloadProgress:(MOBFHttpDownloadProgressEvent)downloadProgressHandler;
/**
* 取消请求
*/
@@ -218,5 +240,30 @@ typedef void(^MOBFHttpUploadProgressEvent) (int64_t totalBytes, int64_t loadedBy
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler;
/**
* 发送HTTP请求
*
* @param urlString 请求地址
* @param method 请求方式
* @param parameters 请求参数
* @param headers 请求头集合
* @param timeout 请求超时
* @param resultHandler 返回回调
* @param faultHandler 错误回调
* @param uploadProgressHandler 上传数据进度回调
* @param downloadProgressHandler 下载数据进度回调
*
* @return HTTP服务对象
*/
+ (MOBFHttpService *)sendHttpRequestByURLString:(NSString *)urlString
method:(NSString *)method
parameters:(NSDictionary *)parameters
headers:(NSDictionary *)headers
timeout:(NSTimeInterval)timeout
onResult:(MOBFHttpResultEvent)resultHandler
onFault:(MOBFHttpFaultEvent)faultHandler
onUploadProgress:(MOBFHttpUploadProgressEvent)uploadProgressHandler
onDownloadProgress:(MOBFHttpDownloadProgressEvent)downloadProgressHandler;
@end
@@ -0,0 +1,31 @@
//
// MOBFImageCachePolicy.h
// MOBFoundation
//
// Created by 冯鸿杰 on 2017/4/12.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MOBFImageServiceTypeDef.h"
@interface MOBFImageCachePolicy : NSObject
/**
缓存名称,用于对不同的图片缓存划分到不同的缓存路径中,如果名称相同则缓存位置相同。
*/
@property (nonatomic, copy) NSString *cacheName;
/**
缓存处理回调,当有图片需要进行缓存时会先调用该方法
*/
@property (nonatomic, strong) MOBFImageGetterCacheHandler cacheHandler;
/**
获取默认的缓存策略
@return 缓存策略
*/
+ (instancetype)defaultCachePolicy;
@end
@@ -10,6 +10,8 @@
#import "MOBFImageServiceTypeDef.h"
#import <Foundation/Foundation.h>
@class MOBFImageCachePolicy;
/**
* 图片获取器
*/
@@ -20,7 +22,15 @@
*
* @return 图片服务实例
*/
+ (instancetype)sharedInstance;
+ (instancetype _Nullable )sharedInstance;
/**
初始化图片服务实例
@param cachePolicy 缓存策略
@return 图片服务实例
*/
- (instancetype _Nullable )initWithCachePolicy:(MOBFImageCachePolicy *_Nullable)cachePolicy;
/**
* 是否存在图片缓存
@@ -29,7 +39,7 @@
*
* @return YES 表示图片已缓存,NO 图片未缓存
*/
- (BOOL)existsImageCacheWithURL:(NSURL *)url;
- (BOOL)existsImageCacheWithURL:(NSURL *_Nullable)url;
/**
* 获取图片
@@ -39,10 +49,23 @@
*
* @return 服务观察者
*/
- (MOBFImageObserver *)getImageWithURL:(NSURL *)url
result:(MOBFImageGetterResultHandler)resultHandler;
- (MOBFImageObserver *_Nonnull)getImageWithURL:(NSURL *_Nullable)url
result:(MOBFImageGetterResultHandler _Nullable )resultHandler;
/**
* 获取图片
*
* @param url 图片路径
* @param allowReadCache 是否允许读取缓存
* @param resultHandler 返回事件
*
* @return 服务观察者
*/
- (MOBFImageObserver *_Nullable)getImageWithURL:(NSURL * _Nullable)url
allowReadCache:(BOOL)allowReadCache
result:(MOBFImageGetterResultHandler _Nullable )resultHandler;
/**
获取图片数据
@@ -51,14 +74,40 @@
@return 服务观察者
*/
- (MOBFImageObserver *)getImageDataWithURL:(NSURL *)url
result:(MOBFImageDataGetterResultHandler)resultHandler;
- (MOBFImageObserver *_Nullable)getImageDataWithURL:(NSURL * _Nullable)url
result:(MOBFImageDataGetterResultHandler _Nullable)resultHandler;
/**
获取图片数据
@param url 图片路径
@param allowReadCache 是否允许读取缓存
@param resultHandler 返回事件
@return 服务观察者
*/
- (MOBFImageObserver *_Nullable)getImageDataWithURL:(NSURL * _Nullable)url
allowReadCache:(BOOL)allowReadCache
result:(MOBFImageDataGetterResultHandler _Nullable)resultHandler;
/**
* 移除图片观察者
*
* @param imageObserver 图片观察者
*/
- (void)removeImageObserver:(MOBFImageObserver *)imageObserver;
- (void)removeImageObserver:(MOBFImageObserver * _Nullable)imageObserver;
/**
* 删除磁盘中缓存中图片
*
* @param url 图片地址
*/
- (void)removeImageForURL:(nullable NSURL *)url;
/**
* 删除当前缓存策略下磁盘目录中所有图片
*
*/
- (void)clearDisk;
@end
@@ -9,7 +9,15 @@
#ifndef MOBFoundation_MOBFImageServiceTypeDef_h
#define MOBFoundation_MOBFImageServiceTypeDef_h
@class UIImage;
#import <UIKit/UIKit.h>
/**
图片缓存处理
@param imageData 图片的数据
*/
typedef NSData* (^MOBFImageGetterCacheHandler)(NSData *imageData);
/**
* 图片加载返回
@@ -9,6 +9,8 @@
#import <Foundation/Foundation.h>
#import "MOBFJSTypeDefine.h"
@class JSContext;
/**
* JavaScript上下文环境
*/
@@ -21,6 +23,15 @@
*/
+ (instancetype)defaultContext;
/**
初始化
@param context JS上下文
@return JS上下文
*/
- (instancetype)initWithContext:(JSContext *)context;
/**
* 注册方法
*
@@ -0,0 +1,37 @@
//
// MOBFJSMethod.h
// MOBFoundation
//
// Created by 冯 鸿杰 on 15/2/27.
// Copyright (c) 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MOBFJSTypeDefine.h"
/**
* JS方法
*/
@interface MOBFJSMethod : NSObject
/**
* 方法名称
*/
@property (nonatomic, copy, readonly) NSString *name;
/**
* 方法实现
*/
@property (nonatomic, strong, readonly) MOBFJSMethodIMP imp;
/**
* 初始化方法
*
* @param name 方法名称
* @param imp 方法实现
*
* @return 方法对象
*/
- (id)initWithName:(NSString *)name imp:(MOBFJSMethodIMP)imp;
@end
@@ -12,7 +12,7 @@
/**
* JS方法实现
*
* @param params 传入参数
* @param arguments 传入参数
*/
typedef void(^MOBFJSMethodIMP) (NSArray *arguments);
@@ -0,0 +1,110 @@
//
// MOBFLogService.h
// MOBFoundation
//
// Created by 冯鸿杰 on 17/2/16.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
@class MOBFLogService;
/**
日志服务协议
*/
@protocol MOBFLogServiceDelegate <NSObject>
/**
是否需要发送日志
@param logService 日志服务
@param logs 已有日志信息集合
@return YES 表示需要发送日志,NO 表示不需要发送日志
*/
- (BOOL)logService:(MOBFLogService *)logService
needsSendLogs:(NSArray *)logs;
/**
发送日志
@param logService 日志服务
@param logs 需要发送的日志信息集合
@param result 发送完成回调,成功时传入YES,否则传入NO
*/
- (void)logService:(MOBFLogService *)logService
didSendLogs:(NSArray *)logs
result:(void (^)(BOOL succeed, NSArray *sentLogs))result;
@end
/**
日志服务
*/
@interface MOBFLogService : NSObject
/**
委托对象
*/
@property (nonatomic, weak) id<MOBFLogServiceDelegate> delegate;
/**
失败最大重试次数
*/
@property (nonatomic) NSInteger failRetryMaxCount;
/**
初始化
@param name 日志服务名称
@return 日志服务对象
*/
- (instancetype)initWithName:(NSString *)name;
/**
初始化
@param name 日志服务名称
@param secretKey 密钥(AES
@return 日志服务对象
*/
- (instancetype)initWithName:(NSString *)name
secretKey:(NSString *)secretKey;
/**
写入数据
@param data 日志数据
*/
- (void)writeData:(id<NSCoding>)data;
/**
写入数据数组
@param data 日志数据
*/
- (void)writeDatas:(NSArray *)data;
/**
同步写入数据
@param data 日志数据
*/
- (void)syncWriteData:(id<NSCoding>)data;
/**
需要发送日志,服务会对当前日志进行检测,如果发现存在日志会跟委托进行确认是否需要发送,然后再进行后续操作
*/
- (void)needsSendLog;
/**
需要发送日志,服务会对当前日志进行检测,如果发现存在日志会跟委托进行确认是否需要发送,然后再进行后续操作
@param time 延时检测时间
*/
- (void)needsSendLogAfterTime:(NSTimeInterval)time;
@end
@@ -1,63 +0,0 @@
//
// MOBFNetworkFlowInfo.h
// MOBFoundation
//
// Created by fenghj on 15/12/17.
// Copyright © 2015年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
/**
* 网络流量信息
*/
@interface MOBFNetworkFlowInfo : NSObject
/**
* 接收到的字节数
*/
@property (nonatomic, readonly) NSUInteger receivedBytes;
/**
* 发送字节数
*/
@property (nonatomic, readonly) NSUInteger sentBytes;
/**
* 最后的更新时间
*/
@property (nonatomic, strong, readonly) NSDate *lastChangeTime;
/**
* WIFI下的接收字节数
*/
@property (nonatomic, readonly) NSUInteger WIFIReceivedBytes;
/**
* WIFI下的发送字节数
*/
@property (nonatomic, readonly) NSUInteger WIFISentBytes;
/**
* 蜂窝网络下的接收字节数
*/
@property (nonatomic, readonly) NSUInteger WWANReceivedBytes;
/**
* 蜂窝网络下的发送字节数
*/
@property (nonatomic, readonly) NSUInteger WWANSentBytes;
/**
* 获取网络流量信息共享实例
*
* @return 网络流量信息对象
*/
+ (MOBFNetworkFlowInfo *)sharedInstance;
/**
* 更新信息
*/
- (void)update;
@end
@@ -21,33 +21,27 @@
typedef NSString *(^MOBFReplacingOccurrencesHandler) (NSInteger captureCount, NSString *const capturedStrings[captureCount], const NSRange capturedRanges[captureCount], volatile BOOL * const stop);
/**
* 正则表达式选项
正则表达式选项
- MOBFRegexOptionsNoOptions: 无匹配
- MOBFRegexOptionsCaseless: 不区分字母大小写的模式
- MOBFRegexOptionsComments: 忽略掉正则表达式中的空格和#号之后的字符
- MOBFRegexOptionsIgnoreMetacharacters: 将正则表达式整体作为字符串处理
- MOBFRegexOptionsDotAll: 允许.匹配任何字符,包括换行符
- MOBFRegexOptionsMultiline: 允许^和$符号匹配整段文本的开头和结尾
- MOBFRegexOptionsUseUnixLineSeparators: 设置\n为唯一的行分隔符,否则所有的都有效。
- MOBFRegexOptionsUnicodeWordBoundaries: 使用Unicode TR#29标准作为词的边界,否则所有传统正则表达式的词边界都有效
*/
typedef NS_ENUM(NSUInteger, MOBFRegexOptions){
/**
* 无设置
*/
MOBFRegexOptionsNoOptions = 0,
/**
* 不区分大小写
*/
MOBFRegexOptionsCaseless = 2,
/**
* 注释
*/
MOBFRegexOptionsComments = 4,
/**
* 匹配点
*/
MOBFRegexOptionsDotAll = 32,
/**
* 多行模式
*/
MOBFRegexOptionsMultiline = 8,
/**
* Unicode字符
*/
MOBFRegexOptionsUnicodeWordBoundaries = 256
typedef NS_ENUM(NSUInteger, MOBFRegexOptions)
{
MOBFRegexOptionsNoOptions = 0,
MOBFRegexOptionsCaseless = 1 << 0,
MOBFRegexOptionsComments = 1 << 1,
MOBFRegexOptionsIgnoreMetacharacters = 1 << 2,
MOBFRegexOptionsDotAll = 1 << 3,
MOBFRegexOptionsMultiline = 1 << 4,
MOBFRegexOptionsUseUnixLineSeparators = 1 << 5,
MOBFRegexOptionsUnicodeWordBoundaries = 1 << 6,
};
/**
@@ -68,6 +68,15 @@
*/
+ (NSData *)dataByHMACSha1String:(NSString *)string forKey:(NSString *)key;
/**
使用HMAC-MD5进行签名
@param string 原始字符串
@param key 密钥
@return 签名后的数据
*/
+ (NSData *)dataByHMACMd5String:(NSString *)string forKey:(NSString *)key;
/**
* 使用BASE64进行解码
*
@@ -77,6 +86,15 @@
*/
+ (NSData *)dataByBase64DecodeString:(NSString *)string;
/**
* 使用BASE64进行解码
*
* @param string 原始字符串
*
* @return 解码后数据string
*/
+ (NSString *)stringByBase64DecodeString:(NSString *)string;
/**
* 判断字符串中是否包含链接
*
@@ -104,4 +122,13 @@
*/
+ (NSData *)dataByHexString:(NSString *)string;
/**
* @brief 转换版本号
* @param ver 版本号
* @return 转换为5位整数表示。
*/
+ (NSInteger)convertVersion:(NSString *)ver;
@end
@@ -0,0 +1,67 @@
//
// MOBFTagService.h
// MOBFoundation
//
// Created by liyc on 2017/10/27.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 错误消息类型
*/
typedef NS_ENUM(NSUInteger, MOBFErrorTagMsgType){
/*
* 标签为空
*/
MOBFErrorTagMsgTypeGetTagEmpty = 109996,
/*
* 获取标签失败
*/
MOBFErrorTagMsgTypeGetTagFailed = 109997,
/**
* 上传标签超出字符限制
*/
MOBFErrorTagMsgTypeCharacterLimitError = 109998,
/**
* 上传无效参数
*/
MOBFErrorTagMsgTypeInvalidParamError = 109999,
};
@interface MOBFTagService : NSObject
/**
上传标记我的用户
@param tags 用户信息
@param result 回调信息
*/
+ (void)tagUserUpload:(NSDictionary *)tags
result:(void (^)(NSError *error))result;
/**
获取标签
@param handler 回调
*/
+ (void)userTags:(void (^) (NSDictionary *userTags, NSError *error))handler;
/**
上传位置信息
@param accuracy 精度
@param latitude 纬度
@param longitude 经度
@param tag 完整地理信息JSON数据
@param handler 回调信息
*/
+ (void)uploadLocation:(CGFloat)accuracy
latitude:(CGFloat)latitude
longitude:(CGFloat)longitude
tag:(NSDictionary *)tag
result:(void (^)(NSError *error))result;
@end
+90
View File
@@ -0,0 +1,90 @@
//
// MOBFUser.h
// MOBFoundation
//
// Created by 冯鸿杰 on 17/3/17.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <MOBFoundation/MOBFoundation.h>
#import "IMOBBaseUser.h"
#import "MOBFDataModel.h"
/**
用户信息
*/
@interface MOBFUser : MOBFDataModel <IMOBBaseUser>
/**
用户标识
*/
@property (nonatomic, copy, readonly, nullable) NSString * uid;
/**
应用的用户标识
*/
@property (nonatomic, copy, readonly, nullable) NSString * appUid;
/**
用户头像
*/
@property (nonatomic, copy, nullable) NSString * avatar;
/**
用户昵称
*/
@property (nonatomic, copy, nullable) NSString * nickname;
/**
签名信息
*/
@property (nonatomic, copy, nullable) NSString * sign;
/**
用户自定义数据
*/
@property (nonatomic, strong, nullable) NSDictionary * userdata;
/**
创建第三方用户信息
@param uid 用户标识,能够表示你的用户唯一性的标识
@param avatar 用户头像地址
@param nickname 用户名称
@return 用户信息
*/
+ (MOBFUser* _Nullable)userWithUid:(NSString * _Nonnull)uid
avatar:(NSString * _Nullable)avatar
nickname:(NSString * _Nullable)nickname __deprecated_msg("use userWithAppUid:avatar:nickname:userData: method instead.");
/**
创建第三方用户信息
@param appUid 用户标识,能够表示你的用户唯一性的标识
@param avatar 用户头像地址
@param nickname 用户名称
@param userdata 用户自定义数据
@return 用户信息
*/
+ (MOBFUser* _Nullable)userWithAppUid:(NSString * _Nonnull )appUid
avatar:(NSString * _Nullable)avatar
nickname:(NSString * _Nullable)nickname
userdata:(NSDictionary * _Nullable)userdata;
/**
创建第三方用户信息
@param appUid 用户标识,能够表示你的用户唯一性的标识
@param avatar 用户头像地址
@param nickname 用户名称
@param userdata 用户自定义数据
@return 用户信息
*/
+ (MOBFUser* _Nullable)userWithAppUid:(NSString * _Nonnull )appUid
avatar:(NSString * _Nullable)avatar
nickname:(NSString * _Nullable)nickname
sign:(NSString * _Nullable)sign
userdata:(NSDictionary * _Nullable)userdata;
@end
@@ -0,0 +1,101 @@
//
// MOBFWKWebViewContext.h
// MOBFoundation
//
// Created by 崔林豪 on 2018/11/6.
// Copyright © 2018年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MOBFJSTypeDefine.h"
#import <WebKit/WebKit.h>
#include <JavaScriptCore/JavaScript.h>
NS_ASSUME_NONNULL_BEGIN
@interface MOBFWKWebViewContext : NSObject
@property (nonatomic, strong) WKWebView *webView;
/**
* 初始化
*
* @return 单例对象
*/
+ (instancetype)defaultContext;
/**
初始化
@param webview Web视图,如果传入视图带有委托处理,请在传入该参数前将委托设置,否则会奔溃。
@return 类实例
*/
- (instancetype)initWithWKWebView:(WKWebView *)webview;
/**
* 注册方法
*
* @param name 方法名称
* @param block 方法执行
*/
- (void)registerJSMethod:(NSString *)name block:(MOBFJSMethodIMP)block;
/**
* 调用方法
*
* @param name 方法名称
* @param arguments 参数
*
* @return 返回值
*/
- (NSString *)callJSMethod:(NSString *)name arguments:(NSArray *)arguments;
/**
* 创建新版本JS解析器
*/
- (void)setupWKWebViewNewJSParser;
- (void)initWKWebViewDelegate:(WKWebView *)wkWebView;
/**
* 加载插件
*
* @param path 插件脚本文件路径
* @param name 插件名称
*/
- (void)loadPluginWithPath:(NSString *)path forName:(NSString *)name;
/**
* 加载插件
*
* @param content 插件脚本内容
* @param name 插件名称
*/
- (void)loadPlugin:(NSString *)content forName:(NSString *)name;
/**
* 执行脚本
*
* @param script 脚本
*/
- (void)runScript:(NSString *)script;
/**
* 回调JS
*
* @param callback 回调方法名称
* @param resultData 回调数据
*/
- (void)callback:(NSString *)callback resultData:(NSDictionary *)resultData;
@end
NS_ASSUME_NONNULL_END
@@ -26,11 +26,10 @@
#import <MOBFoundation/MOBFDataService.h>
#import <MOBFoundation/MOBFHttpService.h>
#import <MOBFoundation/MOBFImageGetter.h>
#import <MOBFoundation/MOBFJSContext.h>
#import <MOBFoundation/IMOBFPlugin.h>
#import <MOBFoundation/MOBFPluginManager.h>
#import <MOBFoundation/MOBFImageCachePolicy.h>
#import <MOBFoundation/MOBFNotificationCenter.h>
#import <MOBFoundation/MobSDK.h>
#endif
+30
View File
@@ -0,0 +1,30 @@
//
// MOBSDKDef.h
// MOBFoundation
//
// Created by liyc on 2018/8/22.
// Copyright © 2018年 MOB. All rights reserved.
//
#ifndef MOBSDKDef_h
#define MOBSDKDef_h
/**
* 国际域名类型
*/
typedef NS_ENUM(NSUInteger, MOBFSDKDomainType){
/**
* 默认(大陆域名)
*/
MOBFSDKDomainTypeDefault = 0,
/**
* 美国
*/
MOBFSDKDomainTypeUS = 1,
/**
* 日本
*/
MOBFSDKDomainTypeJapan = 2,
};
#endif /* MOBSDKDef_h */
@@ -0,0 +1,64 @@
//
// MobSDK+Privacy.h
// MOBFoundation
//
// Created by liyc on 2020/1/21.
// Copyright © 2020 MOB. All rights reserved.
//
#import <MOBFoundation/MobSDK.h>
#import <UIKit/UIKit.h>
#ifndef MobSDK_Privacy_h
#define MobSDK_Privacy_h
@interface MobSDK (Privacy)
/**
获取MobTech用户隐私协议
@param type 协议类型 (1= url类型, 2= 富文本类型)
@param completion 返回回调(data:字典类型 title=标题,content=内容(type=1,返回url,type = 2时返回富文本) error:详细错误信息)
*/
+ (void)getPrivacyPolicy:(NSString * _Nullable)type
compeletion:(void (^ _Nullable)(NSDictionary * _Nullable data,NSError * _Nullable error))result DEPRECATED_MSG_ATTRIBUTE("use -[getPrivacyPolicy:language:compeletion:] method instead.");
/**
获取MobTech用户隐私协议
@param type 协议类型 (1= url类型, 2= 富文本类型)
@param language 隐私协议支持语言()
@param completion 返回回调(data:字典类型 title=标题,content=内容(type=1,返回url,type = 2时返回富文本) error:详细错误信息)
*/
+ (void)getPrivacyPolicy:(NSString * _Nullable)type
language:(NSString * _Nullable)language
compeletion:(void (^ _Nullable)(NSDictionary * _Nullable data,NSError * _Nullable error))result;
/**
上传隐私协议授权状态
@param isAgree 是否同意(用户授权后的结果)
*/
+ (void)uploadPrivacyPermissionStatus:(BOOL)isAgree
onResult:(void (^_Nullable)(BOOL success))handler;
/**
设置是否允许弹窗
@param show 是否允许展示隐私协议二次弹窗(最好设置为YES,否则可能会导致MobTech部分功能无法使用,默认为YES)
*/
+ (void)setAllowShowPrivacyWindow:(BOOL)show DEPRECATED_MSG_ATTRIBUTE("deprecated");
/**
设置隐私协议弹窗色调
@param backColorb 弹窗背景色调
@param colors 弹窗按钮色调数组(首个元素为拒绝按钮色调,第二个元素为同意按钮色调)
*/
+ (void)setPrivacyBackgroundColor:(UIColor *_Nullable)backColor
operationButtonColor:(NSArray <UIColor *>*_Nullable)colors DEPRECATED_MSG_ATTRIBUTE("deprecated");
@end
#endif /* MobSDK_Privacy_h */
+104
View File
@@ -0,0 +1,104 @@
//
// MobSDK.h
// MOBFoundation
//
// Created by liyc on 17/2/23.
// Copyright © 2017年 MOB. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MOBSDKDef.h"
/**
MobSDK
*/
@interface MobSDK : NSObject
/**
获取版本号
@return 版本号
*/
+ (NSString * _Nonnull)version;
/**
获取应用标识
@return 应用标识
*/
+ (NSString * _Nullable)appKey;
/**
获取应用密钥
@return 应用密钥
*/
+ (NSString * _Nullable)appSecret;
/**
获取当前国际域名
@return 域名
*/
+ (NSString *_Nullable)getInternationalDomain;
/**
设置国际域名
@param domainType 域名类型
*/
+ (void)setInternationalDomain:(MOBFSDKDomainType)domainType;
/**
变更应用密钥,针对服务器刷新应用密钥后,可以通过该方法进行修改
@param appSecret 应用密钥
*/
+ (void)changeAppSecret:(NSString * _Nonnull)appSecret;
/**
注册appKey、appSecret
@param appKey appKey
@param appSecret appSecret
*/
+ (void)registerAppKey:(NSString * _Nonnull)appKey
appSecret:(NSString * _Nonnull)appSecret;
#pragma mark - User
/**
设置用户
@param uid 用户标识,对应应用自身用户系统的用户唯一标志,不一定是实际的用户ID,可以通过数据变换的方式(如:MD5(userID))来生成该ID,但一定要能够唯一标识用户。设置nil表示注销用户,解除绑定
@param nickname 昵称
@param avatar 头像
@param userData 用户自定义数据
*/
+ (void)setUserWithUid:(NSString * _Nullable)uid
nickName:(NSString * _Nullable)nickname
avatar:(NSString * _Nullable)avatar
userData:(NSDictionary * _Nullable)userData;
/**
设置用户
@param uid 用户标识,对应应用自身用户系统的用户唯一标志,不一定是实际的用户ID,可以通过数据变换的方式(如:MD5(userID))来生成该ID,但一定要能够唯一标识用户。设置nil表示注销用户,解除绑定
@param nickname 昵称
@param avatar 头像
@param userData 用户自定义数据
*/
+ (void)setUserWithUid:(NSString * _Nullable)uid
nickName:(NSString * _Nullable)nickname
avatar:(NSString * _Nullable)avatar
sign:(NSString * _Nullable)sign
userData:(NSDictionary * _Nullable)userData;
/**
清空用户
*/
+ (void)clearUser;
@end
@@ -0,0 +1,18 @@
//
// UIImageView+MOBFWebCache.h
// MOBFoundation
//
// Created by wukx on 2018/6/6.
// Copyright © 2018年 MOB. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UIImageView (MOBFWebCache)
- (void)mobf_setImageWithURL:(nullable NSURL *)url;
- (void)mobf_setImageWithURL:(nullable NSURL *)url
placeholderImage:(nullable UIImage *)placeholder;
@end
@@ -0,0 +1,18 @@
//
// UIView+MOBFWebCache.h
// MOBFoundation
//
// Created by wukx on 2018/6/6.
// Copyright © 2018年 MOB. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef void(^MOBFSetImageBlock)(UIImage * _Nullable image, NSError * _Nullable error);
@interface UIView (MOBFWebCache)
- (void)mobf_internalSetImageWithURL:(nullable NSURL *)url
setImageBlock:(nullable MOBFSetImageBlock)setImageBlock;
@end