友盟统计封装android,react native 友盟统计 Android 端集成
ios 端 可參考:https://www.jianshu.com/p/879d28ee74e6
趁熱打鐵吧,把剛才已經(jīng)完成的友盟統(tǒng)計集成記錄下 Android端集成:
分下面幾部:
步驟
sdk的集成
原生模塊的配置
原生交互模塊
RN端調(diào)用
sdk集成部分
這里如果嫌官方文檔太亂的話可以參考下 我這里的手動集成:
1.首先把 下載的sdk
umeng-analytics-7.5.3.jar
umeng-common-1.5.3.jar
放到工程目錄下的libs文件夾下,thirdparties文件下的可能和混淆加密有關(guān),這里按需使用吧,我這里沒有。
image.png
image.png
把架包添加到工程中
image.png
dependencies {
compile files('libs/umeng-analytics-7.5.3.jar')
compile files('libs/umeng-common-1.5.3.jar')
}
到這里Android端sdk已經(jīng)集成了。
android端配置
android:name="UMENG_APPKEY"
android:value="5b863efe8f4a9d1b8b00010b" >
交互模塊
接下來把官網(wǎng)下載下來的 交互模塊放到工程中 https://developer.umeng.com/sdk/reactnative
注意這里下載下來的并不是sdk 而是 一些交互類
DplusReactPackage.java
RNUMConfigure.java
AnalyticsModule.java
這三個java交互文件缺一不可哦。
之后,就是把相關(guān) java代碼,改下包路徑 按照錯誤提示更改就行了
比如: package com.rent.UMTJ;
缺少類的 導(dǎo)入相關(guān)類即可。
交互類 寫完之后,在MainApplication中實例化一下
@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new DplusReactPackage(),
);
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
UMConfigure.setLogEnabled(true);
//初始化組件化基礎(chǔ)庫, 統(tǒng)計SDK/推送SDK/分享SDK都必須調(diào)用此初始化接口
RNUMConfigure.init(this, "[這里輸入自己創(chuàng)建應(yīng)用時候的appkey]", "UMENG_CHANNEL", UMConfigure.DEVICE_TYPE_PHONE,
"");
}
在MainActivity中也要初始化操作
@Override
protected void onCreate(Bundle savedInstanceState) {
MobclickAgent.setSessionContinueMillis(1000); //設(shè)置統(tǒng)計的場景,以及發(fā)送間隔:
MobclickAgent.setScenarioType(this, MobclickAgent.EScenarioType.E_DUM_NORMAL);
super.onCreate(savedInstanceState);
}
@Override
public void onResume() { //友盟統(tǒng)計初始化
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() { //友盟統(tǒng)計初始化
super.onPause();
MobclickAgent.onPause(this);
}
ok基本上按照步驟走的話,都很順利,到這里就可以RN端調(diào)用了。
RN端調(diào)用
這里封裝了一下 Umtj.js 可作為參考
import { NativeModules } from 'react-native';
const UMTJ = NativeModules.UMAnalyticsModule;
export const onPageStart = pageName => {
//用于統(tǒng)計單個自定義頁面的起始和onPageEnd同時使用,不可單獨使用
return UMTJ.onPageStart(pageName);
};
export const onPageEnd = pageName => {
//用于統(tǒng)計單個Activity頁面結(jié)束時間
return UMTJ.onPageEnd(pageName);
};
export const onEvent = eventId => {
//用于統(tǒng)計自定義事件的發(fā)生次數(shù)
return UMTJ.onEvent(eventId);
};
export const onEventWithLable = (eventId, label) => {
//用于統(tǒng)計自定義事件的發(fā)生次數(shù) 可傳參數(shù)進(jìn)去
return UMTJ.onEventWithLable(eventId, label);
};
調(diào)用原生模塊
import {
onEvent,
onEventWithLable,
onPageStart,
onPageEnd,
} from '../utils/natives/Umtj';
//比如這里是個點擊事件
click=()=>{
onEvent('regist');
onEventWithLable('regist', '注冊登錄成功');
}
這里的“regist”是我們在 友盟后臺自定義的 埋點值,可以進(jìn)行手動埋點 用來統(tǒng)計用戶一些行為操作,方便產(chǎn)品運營吧。
image.png
總結(jié)
以上是生活随笔為你收集整理的友盟统计封装android,react native 友盟统计 Android 端集成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言printout函数,只使用处理I
- 下一篇: android sina oauth2.