【发布时间】:2017-05-17 16:38:30
【问题描述】:
我正在尝试在 APP 中实现 FB 的 AppEventLogger 以跟踪用户行为和购买。 “APP”是混合的——它是基于科尔多瓦的。它是从 InAppBrowser 加载的,实际上是一个 javascript/PHP 网站。 我正在为 AppEventLogger 使用 Javascript API,如下所示:
var $fCity = $('#fromCity').val();
var $tCity = $('#toCity').val();
var params = { };
params[FB.AppEvents.ParameterNames.CONTENT_TYPE] = $fCity + ' - ' + $tCity;
FB.AppEvents.logEvent(
FB.AppEvents.EventNames.SEARCHED,
null,
params
);
向 facebook 发送以下请求:
当这个请求从应用程序发送到 facebook 时,没有任何反应。未记录该事件。 但是,当从常规浏览器打开/发出相同的链接/请求时,即使只是通过浏览器访问 InAppBrowser 源页面,也会记录该事件。 此外,我将 Facebook SDK 作为 Cordova 插件安装并通过插件发送事件(作为应用程序 - 当它开始和结束时) - 然后它也可以工作。但由于该应用程序位于 inappbrowser 内,因此我无法将该插件用于其他页面。
我已经检查了白名单插件,并且允许连接到 facebook.com。您甚至可以看到我们从 Facebook 的服务器获得了 200 响应和 gif 标头。
为什么 Facebook 的 AppEventBrowser 不记录从 InAppBrowser 插件发送的事件?
【问题讨论】:
-
您是如何配置白名单插件并允许访问的?尝试允许测试
<access origin="*" />的所有内容。可以将您的 inAppBrowser 窗口重定向到图形子域、不同的页面或您不允许的协议。 -
@XristoEftimov 我已经安装了 cordova-plugin-whitelist 并在 html 文件中配置了以下内容: connect.facebook.net"> 我也可以在 InAppBrowser 中打开任何外部网站,没有任何问题。
-
您可以打开控制台并跟踪您发送的包裹吗?
-
@XristoEftimov 是的,我可以。屏幕截图来自控制台,请求 FB 的事件记录器。
-
你有 JavaScript 错误吗?
标签: javascript android facebook cordova facebook-graph-api