IBM Tealeaf 和 Worklight 6.1.0.01-2 Android 应用程序
Posted
技术标签:
【中文标题】IBM Tealeaf 和 Worklight 6.1.0.01-2 Android 应用程序【英文标题】:IBM Tealeaf and Worklight 6.1.0.01-2 Android App 【发布时间】:2014-10-16 22:58:04 【问题描述】:我正在尝试将 Tealeaf 集成到基于 Worklight 的 android 应用程序中。
我采取的第一步是按照 Tealeaf 支持团队的步骤来集成和使用他们提供的文件 (uicandroid.jar)。他们对 Worklight 并不完全熟悉,所以他们引导我了解了 Native App 的方式。然而,这工作得很好,当在设备上运行应用程序时,我能够将预期的结果返回给 Logcat。唯一的问题是每次我进行新的 Android 构建时,我都必须再次执行这些步骤。
我怀疑这只是构建路径的问题,但我已将 jar 文件添加到构建路径中。我尝试了许多不同的目录,包括(apps/libs、apps/lib、apps/android/native/libs、apps/android/libs),并且在 android 构建后文件永远不会在我的 native/src/ 中留下“红线” /.java 文件,正如我添加的那样......
import com.tl.uic.Tealeaf; // this is redlined 'com.tl'
...并将功能更改为:
@Override
public void onCreate(Bundle savedInstanceState)
Tealeaf tealeaf = new Tealeaf(getApplication()); // this is redlined 'Tealeaf' on both
Tealeaf.enable(); // this is redlined 'Tealeaf'
super.onCreate(savedInstanceState);
构建后手动添加native/libs/uicandroid.jar后红线消失。
我尝试过的其他事情。忽略 SDK 的下载和手动添加,我通过 application-descriptor.xml 添加“可选功能/分析”,更新 TLFConfigurableItems.properties 文件以指向 Tealeaf 服务器并且没有要包含的过滤器(type1、2、4、 5,6) 然后构建。 Tealeaf 有效,但它没有显示我在 logcat 中寻找的所有数据。它只显示类型 1 数据,没有我真正需要的 UI 数据。我已经按照 IBM 的 Worklight 5.6 文档进行操作,但 6.1 并没有任何有用的说明。
我什至安装了 WL 6.2 并添加了 Tealeaf Analytics,但仍然没有 UI 数据。
任何想法或方向都会很棒。
基本上它唯一的工作方式是在构建之前,包含生成的 JS 文件,更新 /.java 文件,在构建之后,添加下载的 TLFConfigurableItems.properties 和 uicandroid.jar 文件。我需要在构建之前发生这种情况,因为它进入分支/存储库,其他开发人员正在做不同的事情。
【问题讨论】:
【参考方案1】:关于 Tealeaf 和可选功能的事情在 Worklight 6.1 和 6.2 之间发生了变化。在 6.1 上,Tealeaf 库和属性文件将在重建期间被删除。在 6.2 上,如果您将自己的文件版本添加到项目中,则不一定是这种情况。
6.1 和 6.2 之间的另一个区别是 TLFConfigurableItems.properties 中指定的默认行为。在 6.1 中启用了过滤,禁用了间隔发送,并启用了手动发送,这意味着只有当 Tealeaf 被告知显式发送时才会发送事件。在 6.2 中,属性文件将匹配典型的 9 版 Tealeaf SDK 属性文件,这意味着禁用过滤、启用间隔发送和禁用手动发送。
我认为使用 Worklight 6.2 应该可以解决您看到的构建问题(因为您可以使用包含的 Tealeaf 文件版本,或者因为您自己添加的文件在重建期间不会被删除)。至于缺少的 UI 事件,我不确定;也许其他人可以对此发表评论。
【讨论】:
【参考方案2】:您没有在日志中看到 UI 事件的原因是您的 javascript 层需要通过链接到 Tealeaf 配置脚本来激活 Tealeaf。此外,在 Worklight 6.2 中,您需要按照一些标准集成步骤从 Java 端挂钩 Tealeaf 引擎。这涉及编写一些 Java 代码。在 Worklight 6.1 中,Java 端通过 Worklight Analytics 模块自动集成。
基本上,根据您要使用的 Worklight 版本(6.1 或 6.2),您需要遵循一组不同的 Tealeaf 集成步骤。
很抱歉用问题来回答问题,但如果您能告诉我您希望使用哪个版本的 Worklight,我可以相应地指导您在 Tealeaf 中进行挂钩
【讨论】:
正如主题中所发布的,我的目标是使用 6.1。但是,我的 javascript 层是通过随 uicandroid.jar 提供的 Tealeaf 向导生成的。另外值得一提的是,这个 jar 用于 android,也带有 ios 和其他一些。 JS 文件很长,我的印象是它应该支持不同的设备。虽然它确实有意义,但我拥有的 JS 文件不是为 Worklight 模块生成的。听起来最好的选择是使用 WL 模块并弄清楚要更改什么以使 WL 模块启用 UI 数据。 对于 6.1,您将完成 Worklight Analytics 模块。您无需在 Java 方面编写任何集成代码,因为这由 Worklight Analytics 模块负责。在 JavaScript 方面,涉及到两个 JS 文件。您需要确保“analytics.js”文件链接在您的 index.html 中。这包括所需的 Tealeaf 材料。此外,您现在需要使用另一个 JS 文件激活/配置 Tealeaf。我相信它应该被称为“defaultconfiguration.js”。您的 Tealeaf 发行版中是否恰好有此文件 确保在 index.html 中添加“defaultconfiguration.js”脚本在“analytics.js”脚本之后。这将包括 Tealeaf 引擎并对其进行配置。一旦建立,当您在“UICAndroid”日志标签下运行应用程序时,您应该会在日志中看到 Tealeaf 消息 因为我正在使用 WL 6.1 并使用我没有对 Tealeaf/Analytic 做任何事情的项目分支。我在应用程序描述符中添加了分析模块。然而,在这个过程中,我能看到的唯一新填充的文件是 iOS/Android 细节(UICAndroid.jar 和 iOS 的一对)和 TLFConfigurableItems.properties(指向 PostMessageUrl 的配置文件)。这个模块似乎没有提供任何 JS 文件。在试验/试错中,我已将我以前的 tealeaf.js 添加到组合中并包含在我的 index.html 中。我可以在日志中确认,它只看到数据类型 1,3,6。以上是关于IBM Tealeaf 和 Worklight 6.1.0.01-2 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight 6.0 - 内容根目录和本地 Worklight 服务器设置
IBM Worklight 6.2。分析拓扑。主节点和数据节点
IBM Worklight 6.0 - Worklight Starter Dojo 示例损坏?