在服务器端运行JavaScript的最简单方法

7

我有一个应用程序,运行在移动设备上,例如安卓系统,我有一些第三方流量跟踪js代码来追踪我的应用程序的使用情况。所以每次用户打开我的应用程序时,js代码会向第三方跟踪服务器发送一个ping。但是我不确定是否有一种简单的方法将js代码直接嵌入到我的应用程序中,而不是基于浏览器并且不能解释js代码。因此,我可能需要在服务器端执行js代码。第三方代码是这样的:

<script type="text/javascript" src="http://www.3rdparty.com/tracking.lib.js"></script>
<script type="text/javascript">
   var instance = new Tracking();
   instance.run();
</script>

最简单的方法是将这段代码运行在服务器端。

提前感谢您。


1
我认为在决定是否将其运行在服务器上之前,您应该调查一下代码在做什么。例如:大多数像这样的跟踪工具都依赖于cookie,每个客户端需要一个唯一的值。 - Pointy
3个回答

8
有几种解决方案可以运行服务器端JavaScript(Node.JS,或基于Rhino的某些东西),但该代码可能依赖于仅存在于浏览器中的功能。 编辑 我回答了这个问题,但实际上没有解决问题。即使代码可以在服务器上执行,也不会按预期工作。您真的需要想出一个更好的解决方案来跟踪非基于Web的应用程序的使用情况。
您应该问的问题是:如何跟踪Android应用程序的使用情况?
如果您已经在运行服务器,则可以编写一个简单的Web服务来记录使用情况,您只需要从应用程序内部打开HTTP连接。
如果不存在现有的解决方案,我会感到惊讶,但我不是Android专家,所以我不知道。
我建议删除此问题,并用一个针对您实际想要实现的目标的问题替换它。

1

我不确定这是否真的可能。

如果它是一个Java服务器,您可以使用BeanScripting框架,但是:

如果Javascript代码执行一些计算,例如屏幕大小、浏览器等,则无法获取该信息。

您无法获取IP或HTTP客户端(哪个浏览器等)。

我不知道JavaScript代码,所以我可能错了。

实际上,Javascript代码将调用您的服务器来存储信息。您可以使用网络嗅探器反向工程发送的信息。


0
“所以我可能需要在服务器端执行js代码。” 不需要在客户端浏览器上运行,或者在您的本地应用程序中使用类似于“Web视图”的浏览器组件-或者要求他们提供REST API,从本地代码获取手持设备信息并调用API(大多数情况下是通过http进行的Web服务)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接