Flutter集成友盟的SDK

集成的是友盟最新的SDK:umeng_common_sdk 1.2.3。

SDK的地址:

umeng_common_sdk | Flutter Package友盟+组件化基础库:Common Flutter plugin(Android & iOS).https://pub.flutter-io.cn/packages/umeng_common_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秒,以便快速查看埋点是否正确。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值