因业务需要,我们的app需要继承友盟并且进行事件埋点,涉及电商场景的埋点。
首先,需要在manifest.json文件中勾选统计选项

然后在源码视图中配置从友盟那边申请的appkey,并且输入渠道标识
"umeng" : {
"idfa" : true,
"appkey_ios" : "ios的appkey",
"channelid_ios" : "ios的标识",
"appkey_android" : "安卓的appkey",
"channelid_android" : "安卓的标识,可任意输入,用于区分打出来的包,建议用英文"
}
经过测试,plus.statistic.eventTrig可以埋自定义事件的点,但对于电商事件的埋点(友盟规定的事件ID,如:register、finish_payment等)似乎无效。
所以选择用NJS的方式定义了一个函数去调用,使用方式: eventTrig( String类型的事件ID,Object类型的data ) , 以下NJS的代码:
function eventTrig( eventId , data ){
// #ifdef APP-PLUS
let isios = uni.getSystemInfoSync().platform == 'ios'
if( isios ) plus.ios.invoke('MobClick','event:attributes:',eventId,data)
else{
let HashMap = plus.android.importClass('java.util.HashMap')
let hashData = new HashMap()
for(let key in data ){
hashData.put( String(key),String(data[key]) )
}
let main = plus.android.runtimeMainActivity()
let MobclickAgent = plus.android.importClass('com.umeng.analytics.MobclickAgent')
MobclickAgent.onEvent(main,String(eventId),hashData)
}
// #endif
// #ifndef APP-PLUS
console.log(...arguments)
// #endif
}
经过不严谨的测试,目前使用起来是没有发现问题的,有其他需要或是有发现bug的小伙伴可自行改造哈。