android接入友盟统计其实就是调用原生的api,完全可以按原生的方式来接入统计,在原生android文件夹下配置
1.在build.gradle中依赖所需要的jar包
compile 'com.umeng.analytics:analytics:latest.integration'
2.添加友盟统计所需要的权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3.添加Umeng,appkey 和统计标识,如(腾讯)
<meta-data
android:name="UMENG_APPKEY"
android:value="umengAppkey" />
<meta-data
android:name="UMENG_CHANNEL"android:value="tencent" />
4.在MainActivity中添加下面代码
@Override
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
到此Umeng统计所需要的环境已经搭建完成,接下来就是接入统计啦
5.自定义继承ReactPackage,名字随便取
public class DplusReactPackage implements ReactPackage {
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
/**
* 如需要添加本地方法,只需在这里add
*
* @param reactContext
* @return
*/
@Override
public List<NativeModule> createNativeModules(
ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new UMAnalyticsModule(reactContext));
return modules;
}}
6.在Myapplication中将自定义的包在 getPackages()方法中添加进去
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new DplusReactPackage());
7.自定义需要统计的方法:(可以自己自定义需要统计的方法用 @ReactMethod注解)
public class UMAnalyticsModule extends ReactContextBaseJavaModule {
private ReactApplicationContext context;
public UMAnalyticsModule(ReactApplicationContext reactContext) {
super(reactContext);
context = reactContext;
}
@Override
public String getName() {
return "UMAnalyticsModule";
}
/********************************U-App统计*********************************/
@ReactMethod
public void onPageBegin(String mPageName) {
MobclickAgent.onPageStart(mPageName);
}
@ReactMethod
public void onPageEnd(String mPageName) {
MobclickAgent.onPageEnd(mPageName);
}
@ReactMethod
public void onEvent(String eventId) {
MobclickAgent.onEvent(context, eventId);
}
@ReactMethod
public void onProfileSignIn(String loginId) {
MobclickAgent.onProfileSignIn(loginId);
}
@ReactMethod
public void onEventWithLable(String eventId, String eventLabel) {
MobclickAgent.onEvent(context, eventId, eventLabel);
}
}
以上配置均属于原生代码配置,建议用androidStudio配置好,编译,如果通过原生代码就搭建好了
下面开始接入到ReactNative代码中,我们只需要定义一个基类,至于基类的搭建,上一篇文章中已经有写过啦,这里就不在写了,
一般是在有页面的基类中里面的生命周期方法中调用你需要统计的数据,调用原生中注解的方法,当然ios中也是同样如此只需要将原生中的注解回调方法名设置一样即可,
example:
var UmengAnalytics=NativeModules.UMAnalyticsModule
componentDidMount() { UmengAnalytics.onPageBegin("StringTag") ;}componentWillUnmount() {UmengAnalytics.onPageEnd("StringTag") ;}
统计页面开始,页面结束,登录调用
UmengAnalytics.onProfileSignIn(userId + "");
等等,你还可以在注解方法中自定义需要统计的数据,
到此文章就结束了。。。。。