我是一名Android开发,自学Flutter相关内容,希望大家有问题一起讨论
今天试着尝试Android最常见的推送功能,在Flutter项目中如何进行
Umeng的官方文档对于Flutter如何接入推送我是不想看的(太敷衍了……哈哈)
所以我就决定用自己成功的经验告诉用得到的朋友们(费了大半天才搞定)
这里建议大家先创建个Demo确保推送成功之后,再轻车熟路项目上操作
1,首先打开Flutter项目下面的Android模块,打开Android模块之前先运行一遍Flutter项目
2,在app的build.gradle里面,defaultConfig里面加入如下代码
ndk{
abiFilters'armeabi','armeabi-v7a','arm64-v8a'
}
manifestPlaceholders = [
UMENG_APPKEY:'你申请的appke',
UMENG_MESSAGE_SECRET:'你申请的SECRET',
UMENG_CHANNEL:' ',
HUAWEI_APP_ID:'',
HONOR_APP_ID:'',
XIAOMI_APP_ID:'1',
XIAOMI_APP_KEY:'',
OPPO_APP_KEY:'',
OPPO_APP_SECRET:',
VIVO_APP_ID:'',
VIVO_APP_KEY:'',
MEIZU_APP_ID:'',
MEIZU_APP_KEY:'',
]
注:这里的key值一定要和Umeng官方申请的检查一直,不然运行之后会报各种奇怪的错误
3,在你的清单文件中加入权限,复制粘贴就好
<uses-sdk tools:overrideLibrary="com.xiaomi.push,
com.hihonor.android.push.sdk.common,
com.hihonor.push.sdk,
com.huawei.hms.framework.common,
com.huawei.hms.framework.network.grs,
com.huawei.hms.baselegacyapi,
com.huawei.hmf.tasks,
com.huawei.agconnect.core,
com.huawei.hms.log,
com.huawei.hms.base.device,
com.huawei.hms.base.ui,
com.huawei.hms.stats,
com.huawei.hms.base.availableupdate,
com.huawei.android.hms.base,
com.huawei.android.hms.openid,
com.huawei.android.hms.push,
com.huawei.hms.hatool,
com.huawei.hms.framework.network.frameworkcompat,
org.android.agoo.oppo,
com.vivo.push,
org.android.agoo.vivo,
org.android.agoo.meizu,
org.android.agoo.huawei,
com.pushsdk" />
4,在你的清单文件中
<meta-data android:name="UMENG_APPKEY" android:value="你申请的appkey" />
5,创建application类,这个类不用写代码,起到初始化作用
class MainApplication : FlutterApplication() {
}
创建好了之后,在清单文件application name中引用。
至此Android原生所需要的东西就全部配置齐全了,接下来就是去Flutter项目中啦
Flutter项目中步骤:
1,在pubspec.yaml 添加依赖,添加完成之后记得 Pub get
umeng_common_sdk: 1.2.7
umeng_push_sdk: 2.2.0
2,我是在应用首页进行的初始化
void registerPush() {
UmengPushSdk.setLogEnable(true);
UmengCommonSdk.initCommon(
"appke",
" ",
"dev",
"Umeng Message Secret");
UmengPushSdk.register("appke", "dev");
}
3,获取设备Token,拿到设备Token,就可以推送消息了,可以在日志栏里面看到设备token值