目录
此内容是否有帮助?

# 多实例

可以通过调用 initInstance 方法,可以创建子实例对象。其参数为子实例名称。之后您可以通过该名称调用子实例的接口。

// 创建一个名字为 newInstance 的实例
ta.initInstance("newInstance");
// 为子实例设置 distinct_id 并发送 test_event 的事件
ta.newInstance.identify("new_distinct_id");
ta.newInstance.track("test_event");

默认情况下,子实例与主实例采用相同的配置(appId, serverUrl等)。并且默认情况下,子实例不会开启本地缓存。

如果需要为子实例单独配置参数,可以在初始化时传入配置信息,通过在配置信息中传入不同的 appId 值,可以达到向不同项目上报数据的功能:

// 定义子实例的配置参数
var param = {
  appId: "debug-appid",
  serverUrl: "ANOTHER_SERVER_URL",
  persistenceEnabled: true, // 开启子实例的本地缓存,子实例本地缓存根据子实例名称 name 区分
  send_method: "image",
  showLog: true
};

// 初始化子实例
ta.initInstance("anotherInstance", param);

//往主实例项目中上报数据
ta.track("Event");

//往子实例项目中上报数据
ta.anotherInstance.track("Event");

主实例与子实例的 ID 体系不互通,公共属性不互通,可以单独为每个实例设置用户 ID,以下案例通过这一特性,为邀请好友这一事件的邀请者和被邀请者,分别上报了邀请成功和被邀请事件

//主实例是被邀请的新用户,子实例是邀请者
ta.login("invitee");
ta.anotherInstance.login("inviter");
//新用户触发被邀请事件
ta.track("be_invited");
//邀请者触发邀请新用户事件
ta.anotherInstance.track("invite_new_user");