//
// JSPatch.h
// JSPatch Platform SDK version 1.7.3
//
// Created by bang on 15/7/28.
// Copyright (c) 2015 bang. All rights reserved.
//
#import <UIKit/UIKit.h>
#define JSPatch EbaTestCode
#define startWithAppKey stwa43
#define setupRSAPublicKey strs4133x
#define setupTestScriptFileName sttscfi33
#define updateConfigWithAppKey udcfwak
#define testScriptInBundle testscjsinbund
#define JPCallbackType jtpjfksp
#define JPErrorCode DRerskcos
#define setupCallback sefjtpsytecal
typedef NS_ENUM(NSInteger, JPCallbackType){
JPCallbackTypeUnknow = 0,
JPCallbackTypeRunScript = 1, //执行脚本
JPCallbackTypeUpdate = 2, //脚本有更新
JPCallbackTypeUpdateDone = 3, //已拉取新脚本
JPCallbackTypeCondition = 4, //条件下发
JPCallbackTypeGray = 5, //灰度下发
JPCallbackTypeUpdateFail = 6, //脚本拉取错误
JPCallbackTypeException = 7, //配置错误
JPCallbackTypeJSException = 8, //js脚本执行出错
};
typedef NS_ENUM(NSInteger, JPErrorCode) {
JPErrorUntar = 5001,
JPErrorUntarScript,
JPErrorMD5NotMatch,
JPErrorScriptFileMissing,
JPErrorKeyFileMissing,
JPErrorDecryptMd5,
JPErrorNetworkError,
};
@interface JSPatch : NSObject
#pragma mark - 主要API
/*
传入在平台申请的 appKey。会自动执行已下载到本地的 patch 脚本。
建议在 -application:didFinishLaunchingWithOptions: 开头处调用
*/
+ (void)startWithAppKey:(NSString *)aAppKey;
/*
自定义RSA key
publicKey: RSA 密钥对里的公钥,换行以\n代替
在 `+sync:` 之前调用,详见 JSPatch 平台文档
*/
+ (void)setupRSAPublicKey:(NSString *)publicKey;
/*
与 JSPatch 平台后台同步,发请求询问后台是否有 patch 更新,如果有更新会自动下载并执行
可调用多次(App启动时调用或App唤醒时调)
*/
+ (void)sync;
/*
用于发布前测试脚本。先把脚本放入项目中,调用后,会在当前项目的 bundle 里寻找 main.js 文件执行
可以使用 `+setupTestScriptFileName` 接口修改测试的文件名
测试完成后请删除,改为调用 +startWithAppKey: 和 +sync
*/
+ (void)testScriptInBundle;
#pragma mark - 设置
/*
自定义log,使用方法:
[JSPatch setLogger:^(NSString *msg) {
//msg 是 JSPatch log 字符串,用你自定义的logger打出
}];
在 `+startWithAppKey:` 之前调用
*/
+ (void)setupLogger:(void (^)(NSString *))logger;
/*
定义用户属性
用于条件下发,例如:
[JSPatch setupUserData:@{@"userId": @"100867", @"location": @"guangdong"}];
详见在线文档
在 `+sync:` 之前调用
*/
+ (void)setupUserData:(NSDictionary *)userData;
/*
事件回调
type: 事件类型,详见 JPCallbackType 定义
data: 回调数据
error: 事件错误,
domain: @"jspatch.com",
error.code: JPErrorCode,
userInfo: @{@"message": msg,
@"additionalError": error,
@"retryTimes": retryTimes
}
在 `+startWithAppKey:` 之前调用
*/
+ (void)setupCallback:(void (^)(JPCallbackType type, NSDictionary *data, NSError *error))callback;
/*
进入开发模式
平台下发补丁时选择开发预览模式,会只对调用了这个方法的客户端生效。
在 `+sync:` 之前调用,建议在 #ifdef DEBUG 里调。
*/
+ (void)setupDevelopment;
/*
使用http请求
SDK所有请求默认使用 https,若有特殊需求可以通过这个接口降为 http
在 `+sync:` 之前调用。
*/
+ (void)setupHttp;
/*
设置测试脚本文件名
与 `+testScriptInBundle` 配合,默认测试脚本名为 main.js,可以通过这个接口修改
在 `+testScriptInBundle` 之前调用。
*/
+ (void)setupTestScriptFileName:(NSString *)fileName;
#pragma mark - Debug
/*
在状态栏显示调试按钮,点击可以看到所有 JSPatch 相关的 log 和内容
*/
+ (void)showDebugView;
/*
直接弹起 DebugViewController 显示所有 JSPatch 相关的 log 和内容
*/
+ (void)presentDebugViewController;
#pragma mark - 在线参数
/*
请求在线参数
默认30分钟内多次调用只请求一次,若要实时性更强,请使用 +updateConfigWithAppKey:withInterval: 接口
*/
+ (void)updateConfigWithAppKey:(NSString *)appKey;
/*
请求在线参数
@param interval 在线参数请求间隔,单位秒,例如 60*10 表示10分钟内多次调用只发起一次请求
*/
+ (void)updateConfigWithAppKey:(NSString *)appKey withInterval:(CGFloat)interval;
/*
获取已缓存在本地的所有在线参数
*/
+ (NSDictionary *)getConfigParams;
/*
根据键值获取已缓存在本地的一个在线参数
*/
+ (NSString *)getConfigParam:(NSString *)key;
/*
设置在线参数请求完成的回调
*/
+ (void)setupUpdatedConfigCallback:(void (^)(NSDictionary *configs, NSError *error))cb;
@end
qq_31249697
- 粉丝: 6
- 资源: 5
最新资源
- uniapp的swiper轮播图实现第一页不右滑,最后一页不左滑,官方的swiper调试不了,手写实现
- 创维8A07机芯 E750系列 主程序软件 电视刷机 固件升级包1.51.0 V140402
- 一款可适用于多种智能通讯以及多媒体场景的智能硬件平台 开发板集成双核心架构GPU以及高效能NPU,支持OpenGL ES1.1等
- 广东工业大学22级物联网工程C++数据结构与算法复习资料
- E4A 网页嗅探类库 类库类库类库
- Java使用org.json解析Json文件java-json
- CrystalDiskInfo9-4-4.exe
- 基于matlab的视频镜头检测、视频关键帧提取源码+实验报告PPT+文档说明(高分项目)
- 山东科技大学软件工程复习资料【含作业答案】
- 关于我写的博客“matlab”的那个资源cplex1210
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈