Flutter友盟统计与推送配置|Flutter友盟统计与推送配置 - Android篇
官方文档在配置宿主项目中写的比较简略,我这里做一下配置的详细记录。
Flutter 2.5.0 ? channel stable ? https://github.com/flutter/flutter.git
Framework ? revision 4cc385b4b8 (5 weeks ago) ? 2021-09-07 23:01:49 -0700
Engine ? revision f0826da7ef
Tools ? Dart 2.14.0
umeng_push_sdk: 1.0.1
umeng_common_sdk: 1.2.3
配置Android宿主项目 前置条件:下载官方SDK,加压后参考push文件夹下的
example
拷贝example下的
MainApplication.java
,MainActivity.java
,helper
,到宿主项目的android文件夹下,并修改位于文件顶部的包名package
。修改
PushConstants.java
中定义的常量如appkey、secret等信息。微调
MainActivity.java
使其同时支持友盟统计并引用PushConstants.java
中的常量。package com.XXX.XXX;
import android.os.Bundle;
import androidx.annotation.NonNull;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.message.PushAgent;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;
import com.XXX.XXX.helper.PushConstants;
public class MainActivity extends FlutterActivity {private static final String TAG = "MainApplication";
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
UMConfigure.preInit(this,PushConstants.APP_KEY, PushConstants.CHANNEL);
UMConfigure.setLogEnabled(true);
PushAgent.getInstance(this).onAppStart();
//设置上下文
com.umeng.umeng_common_sdk.UmengCommonSdkPlugin.setContext(this);
android.util.Log.i("UMLog", "onCreate@MainActivity");
}@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
}
修改
AndroidManifest.xml
中的application配置android:label="应用名称"
android:name="com.XXX.XXX.MainApplication"
tools:replace="android:allowBackup, android:label"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
配置Flutter项目 【Flutter友盟统计与推送配置|Flutter友盟统计与推送配置 - Android篇】增加依赖库引用
pubspec.yaml
umeng_common_sdk: 1.2.3
umeng_push_sdk:
path: plugins/umeng_push_sdk-1.0.1
这里按照官方文档直接下载的sdk压缩包。发布在pub.dev上的包未作验证。
UmengCommonSdk.initCommon('android key', 'ios key', 'dev');
UmengCommonSdk.setPageCollectionModeManual();
UmengPushSdk.register();
await UmengPushSdk.setPushEnable(true);
var registeredId = await UmengPushSdk.getRegisteredId();
print('registeredId ${registeredId}');
在终端中得到
registeredId
后就可以在友盟推送的后台验证是否配置成功。参考资料
https://developer.umeng.com/s...
https://developer.umeng.com/d...
https://developer.umeng.com/d...
推荐阅读
- 杭电oj——2030汉字统计
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- 临床统计学学习日志
- Flutter的ListView
- 用python统计小说出现频率最高的词语
- iOS|iOS runtime应用整理
- 运用flutter|运用flutter 构建一个发布版(release)APK
- Flutter自定义view|Flutter自定义view —— 闯关进度条
- 12.新增腾讯的统计(以渠道来源说明)
- Flutter|Flutter SwiftUI React 对比