SDK API
+startWithAppKey:
传入在平台申请的 appKey,启动 JSPatch SDK。同时会自动执行已下载到本地的 patch 脚本。建议在 -application:didFinishLaunchingWithOptions:
开头处调用。
+sync
与 JSPatch 平台后台同步,询问是否有 patch 更新,如果有更新会自动下载并执行。
!!注意 +startWithAppKey:
并不会询问后台 patch 更新,必须调用 +sync
方法。
每调用一次 +sync
就会请求一次后台,对于实时性要求不高的 APP,只需在 -application:didFinishLaunchingWithOptions:
处调用一次,这样用户会在启动时去同步 patch 信息。对于实时性要求高的 APP,可以在 -applicationDidBecomeActive:
处调用这个接口,这样会在每次用户唤醒 APP 时去同步一次后台,请求次数会增多,但有 patch 更新时用户会及时收到。
+setupLogger:
JSPatch SDK 里会打一些请求和执行的log,默认是以 NSLog()
打出,若你的 APP 有自己的日志系统,希望把 log 打在你的日志系统里,可以在调用 +startWithAppKey 之前调用这个接口:
[JSPatch setLogger:^(NSString *msg) {
//msg 是 JSPatch log 字符串,用你自定义的logger打出
YOUR_APP_LOG(@"%@", msg);
}];
+testScriptInBundle
用于发布前测试脚本,调用后,会在当前项目的 bundle 里寻找 main.js 文件执行。注意不能同时调用 +startWithAppKey:
方法,测试完成后需要删除。
+setupHttp:
JSPatch SDK 从 1.6.3 开始默认开启 HTTPS,若有特殊需求,可以在调用 [JSPatch sync]
之前调用这个接口,请求降为 http。
+setupCallback:
JSPatch 执行过程中的事件回调,在以下事件发生时会调用传入的 block:
typedef NS_ENUM(NSInteger, JPCallbackType){
JPCallbackTypeUnknow = 0,
JPCallbackTypeRunScript = 1, //执行脚本
JPCallbackTypeUpdate = 2, //脚本有更新
JPCallbackTypeUpdateDone = 3, //已拉取新脚本
JPCallbackTypeCondition = 4, //条件下发
JPCallbackTypeGray = 5, //灰度下发
};
举例:
[JSPatch setupCallback:^(JPCallbackType type, NSDictionary *data, NSError *error) {
switch (type) {
case JPCallbackTypeUpdate: {
NSLog(@"updated %@ %@", data, error);
break;
}
case JPCallbackTypeRunScript: {
NSLog(@"run script %@ %@", data, error);
break;
}
default:
break;
}
}];
+setupUserData:
定义用户属性,在 +sync:
之前调用,用于条件下发,例如:
[JSPatch setupUserData:@{
@"userId": @"100867",
@"location": @"guangdong"
}];
详见 灰度与条件下发
+setupRSAPublicKey:
自定义 RSA key,在 +sync:
之前调用,详见 自定义 RSA 密钥。
+setupDevelopment
开发预览模式,下发补丁时若选择开发预览模式下发,只会对调用过 +setupDevelopment
的客户端生效。
建议在 DEBUG
时设置,详见 开发预览。
+showDebugView
调用后,在 statusBar 会出现 JSPatch 调试按钮:
点击后,会弹起显示 JSPatch 所有相关 log,方便调试问题:
+presentDebugViewController
不在 statusBar 显示调试按钮,直接弹起显示 JSPatch 所有相关 log。