这是 Google 跟踪代码管理器 (GTM) 的移动版实现方式。用法示例:
Container container = TagManager.getInstance(context).openContainer(myContainerId);
String value = container.getString("myKey");
DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
Container 类提供了用于检索给定键的值的方法。
例程 getBoolean(String)、getDouble(String)、
getLong(String)、getString(String) 返回当前
值集合宏的键的值,
具体取决于与容器关联的规则
例如,如果您的容器有一个值集合宏,其键为 speed,该键
值为 32,且启用规则 Language 为“en”;以及另一个值集合
宏,其中键为 speed,值为 45,启用规则则是
Language 不是“en”,则进行以下调用:
container.getLong("speed")
数据层是一个包含应用一般信息的地图。
DataLayer 类提供了用于从数据层推送和检索数据的方法。
将 event 键推送到数据层将会导致代码与此事件匹配
才能触发
容器的初始版本与应用捆绑在一起。应该是
作为具有名称 tagmanager/containerId 的资产放置,其中 containerId 相同
容器 ID。当您调用 openContainer(String, Container.Callback) 时,容器
将与这些捆绑规则/宏一起返回。
您将在界面中创建容器,并使用“下载”按钮进行下载。
您可以在界面中修改容器并发布新版本。在这种情况下,下次 移动应用从网络中刷新容器(目前为每 12 小时刷新一次), 则会使用新版本当您 调用其中一个 get... 例程时,系统将使用最新的规则计算该值。
下载的容器保存在本地;调用 openContainer(String, Container.Callback) 时,它会首先
先加载默认容器,然后异步加载已保存的所有容器。如果没有
或者已超过 12 小时,则会尝试从网络中检索较新版本。
您可以通过以下方式查找这些异步加载的状态:
Container.Callback 至 openContainer(String, Container.Callback)。
有时,您可能要一直阻止,直到有非默认容器可用,或
最近刷新容器可用时ContainerOpener 是一个可以提供帮助的实用程序类。
创建完容器后,请调用 close()。
嵌套类摘要
| 接口 | TagManager.Logger | 用于进行错误/警告/信息/调试/详细日志记录的简单接口。 | |
| 枚举 | TagManager.RefreshMode | 用于刷新容器的模式。 | |
公共方法摘要
| 容器 |
getContainer(String containerId)
|
| 背景 | |
| DataLayer | |
| 静态 TagManager |
getInstance(Context 上下文)
|
| 日志记录器 | |
| TagManager.RefreshMode | |
| 容器 | |
| 无效 | |
| 无效 |
公共方法
<ph type="x-smartling-placeholder"></ph> 公开 容器 getContainer (String containerId)
返回与 containerId 关联的已打开容器;
如果容器尚未打开,则返回 null。
<ph type="x-smartling-placeholder"></ph> 公开 背景 getContext ()
返回与此对象关联的已保存上下文。
<ph type="x-smartling-placeholder"></ph> 公开 静态 TagManager getInstance (上下文 上下文)
获取 TagManager 类的单例实例,必要时可创建该实例。
<ph type="x-smartling-placeholder"></ph> 公开 容器 openContainer (String containerId, Container.Callback 回调
返回容器。当发生以下情况时,系统会调用回调 容器。至少,openContainer 会尝试加载 容器。如果没有保存的版本或保存的版本已过期,请尝试 才能从网络加载
通常,返回的容器是空的,但加载会在单独的 因此返回的容器可能会在返回之前、返回之后进行刷新 或可能永远不会刷新(例如,在生命周期内没有网络连接) 容器的物理组件)。
如果您第二次针对指定的 containerId 调用 openContainer,
但系统会抛出异常
参数
| containerId | 要打开的容器的 ID |
| callback | 一个对象,其各种方法将在部分加载期间调用
过程。请注意,可以从不同的线程调用这些方法。此外,他们还可能会
在 openContainer 返回之前调用。
|
<ph type="x-smartling-placeholder"></ph> 公开 无效 setRefreshMode (TagManager.RefreshMode 模式)
设置用于所有容器的刷新模式。