public class JsHead {
protected int msgId;
protected String url;
public int getMsgId() {
return msgId;
}
public void setMsgId(int msgId) {
this.msgId = msgId;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
String string = new Gson().toJson(this);
return string;
}
}
public class JsData extends JsHead {
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
@Override
public String toString() {
String string = new Gson().toJson(this);
return string;
}
}
public class GaEvent {
private String category;
private String action;
private String label;
private long value;
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public long getValue() {
return value;
}
public void setValue(long value) {
this.value = value;
}
@Override
public String toString() {
String string = new Gson().toJson(this);
return string;
}
@JavascriptInterface
public void jsCallAndroid(String string) {
Log.i("JsInterface", "string:" + string);
Tracker tracker = null;
if (mBaseFragment != null) {
tracker = mBaseFragment.getmTracker();
} else if (mLifeActivity != null) {
tracker = mLifeActivity.getmTracker();
}
JSONObject jsonObj = null;
int msgId = -1;
String url = null;
String data = "";
try {
jsonObj = new JSONObject(string);
msgId = jsonObj.optInt("msgId");
url = jsonObj.optString("url");
data = jsonObj.optString("data");
} catch (JSONException e) {
e.printStackTrace();
}
switch(msgId)
{
case 1:
if(!TextUtils.isEmpty(data)){
String category = null;
String action = null;
String label = null;
long value = 0;
// Gson gson = new Gson();
// GaEvent gaEvent = gson.fromJson(data, GaEvent.class);
// Log.i("JsInterface", "gaEvent:" + gaEvent);
// if (gaEvent != null) {
// category = gaEvent.getCategory();
// action = gaEvent.getAction();
// label = gaEvent.getLabel();
// }
try {
jsonObj = new JSONObject(data);
category = jsonObj.optString("category");
action = jsonObj.optString("action");
label = jsonObj.optString("label");
} catch (JSONException e) {
e.printStackTrace();
}
HitBuilders.EventBuilder eventBuilder = new HitBuilders.EventBuilder();
if(!TextUtils.isEmpty(category)){
eventBuilder.setCategory(category);
}
if(!TextUtils.isEmpty(action)){
eventBuilder.setAction(action);
}
if(!TextUtils.isEmpty(label)){
eventBuilder.setLabel(label);
}
tracker.send(eventBuilder.build());
}
break;
}
}