6

首先让我说我知道如何使用 iOS SDK,所以请不要用“只使用 SDK”来回答这个问题。我想知道为什么谷歌分析不起作用。

这是我的设置。我有一个网络应用程序,它也通过 webview 烘焙到一个 android 应用程序和 ios 应用程序中。我正在使用科尔多瓦。android 应用程序与 GA JS 代码一起工作得很好。网络工作得很好。但是,iOS 没有显示任何事件或页面浏览量。我听说 GA 与域相关联,那么 iOS Webview 是否会对域做一些底层操作?

我打算附上我的代码片段,但它是几个类中的咖啡脚本,所以我只粘贴编译后的 js

  Analytics.prototype.track = function(args) {
      window._gaq.push(args);
  };
  Analytics.track(['_trackEvent', 'SubscriptionModal', "Closed", data]);

这在 web 和 android 中运行良好,所以它不是 JS。我将 GA _setDomainName 设置为“focusatwill.com”,可以看到 ios 和 web 的域都是“www.focusatwill.com”

我在网上看到一些人在谈论这个问题,每个人都说只使用 SDK。我正在寻找它不起作用的原因。你如何修复它以使用 JS?

编辑

我应该提一下 html 和 JS 并没有嵌入到设备中,即它们没有本地 url,而是从我们的网络服务器提供的

4

1 回答 1

0

默认情况下,iOS6+ 上的 Safari 会阻止第三方 cookie,我确信 webviews 也会这样做。

检查 AppDelegate.m 的 init 方法中是否有类似以下内容:

NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

这是来自 Cordova 3.0.9 生成的标准样板文件,但如果您使用的是早于 iOS6 的版本,则可能不存在。它设置应用程序特定的 cookie 策略,该策略应覆盖系统默认值。

于 2013-10-01T19:38:14.577 回答