3

MixpanelをGWTと統合しようとしていますが、プロパティと1つの値を使用してイベントを呼び出すのに問題があります。

単純なイベント(値なし)を追跡する私の関数:

 public native void trackEvent(String eventName)/*-{
        $wnd.mixpanel.track(eventName);
    }-*/;

できます。

しかし、いくつかのプロパティと値を追加したい場合、正しく機能しません。

public native void trackComplexEvent(String eventName, String property, 
            String value)/*-{
    $wnd.mixpanel.track(eventName, {property:value});

}-*/;

これには2つの問題があります。

1)Mixpanelは、プロパティ名が「property」(はい、値ではなく、渡す変数の名前)であると言います。

2)Mixpanelは、値が次のようになっていると言います:undefined

ミックスパネルウェブの例は次のとおりです。

mixpanel.track("Video Play", {"age": 13, "gender": "male"});

したがって、問題は、間違った呼び出しを行っているか、間違ったタイプの引数を使用していることだと思います。

4

1 に答える 1

4

問題は、パスを渡すときにプロパティオブジェクトを作成するときに、property名前から取得したパラメータを作成するのではなく、という名前のプロパティを作成することですproperty。コードをデバッグする場合は、パラメーターpropertyが関数に渡されていることを確認できますmixpanel.track

やりたいことをするためには、他の構文を使わなければなりません。

public native void trackComplexEvent(String eventName, String property,
        String value)/*-{
    //create the property object you want to pass
    var propertyPassed = {}     
    // set the value you want to pass on the propertyPassed object
    propertyPassed[property] = value;

    //call your function with the argumetn you want to pass     
    $wnd.mixpanel.track(eventName, propertyPassed);
}-*/;

私のサイトでJavaScript関数を作成して、コードをテストしました。

window.mixpanel = {
            track : function(eventName, props) {
                alert(props.age);
            }
        }

そしてそれを

    trackComplexEvent("hallo", "age", "13");

アラートは'13'

BR、ステファン

于 2012-10-20T10:57:52.670 に答える