常用API介绍

1 Engine类API介绍

1.1 初始化

	  /**
         * @param app            application对象
         * @param isOpenLog      日志开关 true:开启  false:关闭
         * @param openCockroach  bandage开关(全局异常捕获)
         * @param usePortService 端口开关   true:使用端口进行网络请求   false:使用接口进行网络请求
         * @param launchModel    APP启动时资源的拉取方式是同步还是异步
         * @param httpProxy      代理地址(供抓包时配置)
         * @param grayFlag       传入0表示使用默认的灰度ui(弹框),传入除0之外的其它int类型的值表示自定义灰度ui
         * @param callback       初始化回调
         */
        initEnvironment(final Application app, final boolean isOpenLog, final boolean openCockroach, boolean usePortService, MADConfig.LaunchModel launchModel, String httpProxy, int grayFlag, InitEnvCallback callback)       

1.2 开始执行启动链

startup()

开始执行前端在后管central.json中配置的启动链

如下图所示:

1.3 配置行为分析地址

参数:行为分析地址

startBurialPointWithHost(String behaviorUrl)

1.4 获取代理地址

proxyGetAddress()

1.5 获取代理ip

proxyGetHost()

1.6 获取代理端口

proxyGetPort()

1.7 注册自定义场景

registerModule(String format, Class<? extends Activity> klass)

参数format是对应后管repo.json中配置的moudle属性

如下图所示:

参数klass 是自定义activity.class

1.8 注册自定义场景回调

registerModule(String format, Router.RouterCallback callback)

参数format 同4.7

RouterCallback 回调接口,实现run方法得到RouteContext类,可以拿到前端repo.json中配置的params,path路径后面参数bundle,上下文Context,可以拿到数据自行实现dialog,toast等。

1.9 主动拉取central

refreshCentral()

返回值0:成功;1:失败

1.10 主动拉取资源

refreshRepo(String repoID)

参数repoID是仓库id

强制刷新仓库内容,让MADP后管的修改能在客户端上反映出来,例如客户端上首页的下拉刷新功能。返回值是int型,0为成功,非0为失败。

1.11 启动场景

launchStage(String stageid)

参数为String类型的场景id,为中心服务器配置的某个仓库里的场景,参数格式支持形如:
仓库名.场景id?参数key1=参数value1&… &参数key(n)=参数value(n)
其中:仓库名.场景id为必选项, ?参数key1=参数value1&… &参数key(n)=参数value(n)为可选项,用于向即将打开的场景传递参数。

例如:

  public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //启动main仓库的launcher(加载器)场景
        Engine.launchStage("main.launcher");
        //启动main仓库的myaccount(我的账户)场景,同时传递参数name=张三丰,age=20给场景
        Engine.launchStage("main.myaccount?name=张三丰&age=20");
    }
}

1.12 自定义同步加载资源时的loadingUI

initResIndexListener(ResourcIndexingListener resIndexingListener)

参数resIndexingListener是ResourcIndexingListener接口的实现,接口中暴露了startIndexing(Activity activity)、indexProgress(Activity activity, int index)、finishIndexing(Activity activity)这三个回调方法。用于同步启动方式,自定义获取更新列表时loadingUI。

1.13 自定义无注册表、SDK未授权、没有配置启动链和sdk输出模式时展示的dialog

initFatalErrorListener(FatalErrorListener fatalErrorListener) 

参数fatalErrorListener是FatalErrorListener接口的实现,接口中暴露了showCustomDialog(Activity activity, Event event)回调方法。

注意:该方法需要在initEnvironment初始化方法之前调用才会生效,否则使用SDK默认的dialog

1.14 自定义APP同步启动资源更新失败时展示的dialog

initUpdateErrorListener(UpdateErrorListener updateErrorListener)

参数updateErrorListener是UpdateErrorListener接口的实现,接口中暴露了showCustomDialog(Activity activity, Event event)回调方法。

注意:该方法需要在initEnvironment初始化方法之前调用才会生效,否则使用SDK默认的dialog

1.15 注册及解注册自定义报文加解密

registryCustomEncryption(final CustomEncryptioner customEncryptioner, final int encryptionType)

参数customEncryptioner 是CustomEncryptioner接口的实现,接口中提供了加密和解密的回调方法。

参数encryptionType 传入3代表对url、body和header进行自定义加解密;传入其他整型值代表仅对body进行自定义加解密。

取消自定义加密:

cancelCustomEncryption()

1.16 自定义注册表(registry.dat)路径

setRegistryPath(String path)

不设置注册表路径默认存放在assets目录下,注册表名称默认为registry.dat;如需自定义注册表路径的话,参数path为assets目录下注册表文件名或assets目录下子目录中的注册表的相对路径,注册表名称支持重命名,但必须以.dat结尾的格式命名。

如果您想在assets目录中存放文件名为registry2.dat的注册表文件,那么您传入的path值就为"registry2.dat"。

如果您想在assets目录下的子目录(sit)中存放名为registry.dat的注册表文件,那么您传入的path的值就为"sit/registry.dat",以此类推。

注意:该方法必须要在initEnvironment初始化方法之前调用,否则无效。