集成的是友盟最新的SDK:umeng_common_sdk 1.2.3。
SDK的地址:
官方的集成文档:
开发者中心https://developer.umeng.com/docs/119267/detail/174923
本人是iOSer。iOS集成时没有什么问题。但在集成Android时是各种问题,对友盟真的是有一点不满意。
注意的一点时,SDK中保函的example中,有几个示例是为了说明不合法的参数的。产生事件后,要看控制台的输出,如果事件的参数不合法,会在控制台输出。
一、Gradle报 dl.bintray.com无法访问
需要修改下面的文件:/应用工程/android/build.gradle
在repositories节点和allprojects节点下都增加一项:maven { url "https://jitpack.io" }
如下:
buildscript {
ext.kotlin_version = '1.4.10'
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url "https://jitpack.io" }
}
dependencies {
//noinspection GradleDependency
classpath 'com.android.tools.build:gradle:3.6.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url "https://jitpack.io" }
}
}
二、需要修改Android的源代码,这个还是必须的,不然埋点不起作用,非常不理解,iOS没有这个要求。
-
在宿主App的MainActivity.onCreate()函数中调用基础组件库初始化函数.
-
Java代码如下:
-
package com.umeng.umeng_common_sdk_example; import android.os.Bundle; import io.flutter.embedding.android.FlutterActivity; import com.umeng.analytics.MobclickAgent; import com.umeng.commonsdk.UMConfigure; public class MainActivity extends FlutterActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); UMConfigure.preInit(this,"AppKey要和Flutter代码中的一样","Umeng"); UMConfigure.setLogEnabled(true); android.util.Log.i("UMLog", "onCreate@MainActivity"); } }
如果是Kotlin,则如下:
-
package com.umeng.umeng_common_sdk_example import io.flutter.embedding.android.FlutterActivity import android.os.Bundle import com.umeng.analytics.MobclickAgent import com.umeng.commonsdk.UMConfigure class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) UMConfigure.preInit(this, "61baf5bce014255fcbb8f5b6", "Umeng") UMConfigure.setLogEnabled(true) android.util.Log.i("UMLog", "onCreate@MainActivity") } }
三、事件只要从App上报到了服务端,就会实时显示,事件的上报间隔是在友盟的管理平台上设置的。建议在集成阶段,将上报间隔设置成最小的90秒,以便快速查看埋点是否正确。