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。

JSPatch.com © 2017 Github开源 | 联系我们 | 合作伙伴