乐趣区

关于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 我的项目

减少依赖库援用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…

退出移动版