【问题标题】:Can't read property 'ABD' of the undefined - Adobe Analytics Phonegap Plugin无法读取未定义的属性“ABD” - Adob​​e Analytics Phonegap Plugin
【发布时间】:2015-01-07 14:31:26
【问题描述】:

打算使用 ADBPhoneGap 插件在我的移动应用程序中实施 Adob​​e Analytics。 以下是代码,我正在尝试在Link 中要求执行的基本配置。 我得到的错误是无法读取未定义的属性“ADB”。如何解决问题。也无法弄清楚上述链接中提到的“生命周期指标自动跟踪”的实施对象和位置。任何人都可以帮助使用 trackState 或 trackAction 方法的基本脚本,参考以下示例。

<!DOCTYPE HTML>
<html>
 <head>
 <!--    <meta name="viewport" content="width=320; user-scalable=no" /> -->
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<title>PhoneGap</title>
    <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title">
    <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
    <script type="text/javascript" charset="utf-8" src="ADB_Helper.js"></script>
    <script type="text/javascript">

    var ADB;
    function initialize() {
    alert('In initalize');
            document.addEventListener("deviceready", onDeviceReady, true);
            //alert('Device Ready');
        alert('Exit initalize');
        }
        function onDeviceReady() {
        alert('in On Device Ready method');
            ADB = window.plugins.ADB;
                        alert('Exit On Device Ready method'+ADB);
            // Note: A request for permission is REQUIRED by google. You probably want to do this just once, though, and remember the answer for subsequent runs.
            navigator.notification.confirm('GA_PLUGIN would like your permission to collect usage data. No personal or user identifiable data will be collected.', permissionCallback, 'Attention', 'Allow,Deny');
        }

    function TrackButtonClicked()
    {
    alert('Track Button Entry');
//  ADB.trackState("login page", {"user":"john","remember":"true"});
    alert('Track Button Exit');
    }
    </script>
   </head>
  <body onload="initialize();"  id="stage" class="theme"> <!-- onunload="goingAway();" -->

<h1>Test Adobe Analytics Plugin</h1>
<div class="space"></div>
<div>
    <a href="#" class="btn large" onclick="TrackButtonClicked();">Track Event</a>
    <!--<a href="#" class="btn large" onclick="VariableButtonClicked();">Track Event with Variable</a>
    <a href="#" class="btn large" onclick="PageButtonClicked();">Track Page</a>-->
 </div>
</body>
</html>

【问题讨论】:

    标签: cordova adobe-analytics


    【解决方案1】:

    由于在 ADBHelper.js 中名为 ADB 的变量已被声明,您似乎在代码中将其覆盖了两次。首先你shadow它与

    var ADB
    

    在您的全局范围内,这实际上意味着覆盖它。那你就做

    ADB = window.plugins.ADB;
    

    再次将其设置为 window.plugins.ADB,这似乎是 undefined

    所以删除这两行,之后,如果插件安装正确,ADB 应该已经是包含 Adob​​e Analytics 方法的对象。

    【讨论】:

    • 继续,我尝试通过代码 ADB.trackLocation('40.431596', '-111.893713'); 执行 TrackLocation这给了我错误“Uncaught TypeError: Object # has no method 'exec',”......你有同样的想法吗? @sanfor
    • 由于 cordova.execundefined,您正试图在 deviceReady 事件之前调用 ADB,所以请等待它。
    • 那么有什么办法可以解决这个问题,你能帮我吗@sanfor
    • @Learner: document.addEventListener("deviceReady", function(){//Here call the ADB}, false)
    • 仍然得到同样的错误,在 deviceready 方法中调用 ADB .. Uncaught referenceError : corodova is not defined window.addEventListener('load',function(){ alert('HI'); ADB.trackLocation('40.431596', '-111.893713'); });
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2014-08-29
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 2020-04-06
    相关资源
    最近更新 更多