|
/

对于页面StoreFragment@Male,onPageStart和onPageEnd调用对的参数

Ddxw
发布于 5 年前
228
移动统计 U-App

接入移动统计sdk,Fragment页面切换时,日志报错:


对于页面StoreFragment@Male,onPageStart和onPageEnd调用对的参数。

请教各位这是什么情况?

2个回答
 
5 年前

[SA10100]页面统计相关问题

关键字:

页面统计、onPageStart、onPageEnd、onResume、onPause

问题描述:

问法1:页面访问路径为什么不完整?

问法2:Fragment中的页面访问路径怎么统计不到?

问法3:页面访问路径无数据?

解决方案:

页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。 页面访问路径的数据为全量统计。

只由Activity构成的应用

如果你已经选择了AUTO的页面模式,或在者APP的所有Activity的onResume函数中调用MobclickAgent.onResume函数,在所有Activity的onPause函数中调用MobclickAgent.onPause函数,那么SDK已默认统计了每个Activity的跳转路径。页面统计不需要再添加其他代码。

包含Activity、Fragment或View的应用

统计应用中包含Fragment的情况比较复杂,首先要明确一些概念。

  1. MobclickAgent.onResume() 和 MobclickAgent.onPause() 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)。
  2. MobclickAgent.onPageStart() 和 MobclickAgent.onPageEnd() 方法是用来统计页面跳转的。

在仅有Activity的应用中,SDK 自动帮助开发者调用了 onPageStart/onPageEnd 方法,并把Activity 类名作为页面名称统计。但是在包含fragment的程序中我们希望统计更详细的页面,所以需要自己调用页面统计方法做更详细的统计。

首先,需要在程序入口处,选择页面模式为MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_MANUAL);这样将不会再自动统计Activity页面跳转。

然后需要手动添加以下代码:

  1. 使用 MobclickAgent.onResume 和 MobclickAgent.onPause 方法统计时长, 这和基本统计中的情况一样(针对Activity)。
  2. 使用 MobclickAgent.onPageStart 和 MobclickAgent.onPageEnd 方法统计页面(针对页面,页面可能是Activity 也可能是Fragment或View)。

如果页面是直接由Activity实现的,统计代码大约是这样:

 public void onResume() {
super.onResume();
MobclickAgent.onPageStart("SplashScreen"); //统计页面(仅有Activity的应用中SDK自动调用,不需要单独写。"SplashScreen"为页面名称,可自定义)
MobclickAgent.onResume(this); //统计时长
}
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("SplashScreen"); // (仅有Activity的应用中SDK自动调用,不需要单独写)保证 onPageEnd 在onPause 之前调用,因为 onPause 中会保存信息。"SplashScreen"为页面名称,可自定义
MobclickAgent.onPause(this);
}

如果页面是使用FragmentActivity + Fragment实现的,需要在 FragmentActivity 中统计时长:

 public void onResume() {
super.onResume();
MobclickAgent.onResume(this); //统计时长
}
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}

并在其包含的 Fragment 中统计页面:

 public void onResume() {
super.onResume();
MobclickAgent.onPageStart("MainScreen"); //统计页面,"MainScreen"为页面名称,可自定义
}
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("MainScreen");
}

注意:这些方法的调用,需要保证线性不交叉,每个 onResume 都对应一个 onPause ,每个 onPageStart 都有一个 onPageEnd 配对。这样才能保证每个页面统计的正确。

 
5 年前

有没有使用最新版本的SDK?

Loading ...
登录社区,分享你的经验