如何在 Flutter 中集成华为应用内消息

一、安装flutter环境

1、下载Flutter sdk包,地址:https://flutter.dev/docs/get-started/install/windows

2、将压缩包解压到任意文件夹

3、将flutter命令文件添加到环境变量中

4、在Android Studio中下载Flutter和Dart插件

1.png

二、开通服务&创建工程

我的项目 下选择你的开发项目,在增长下面,找到应用内消息服务,点击开通,详细开通步骤请参考文档

没有Android项目的话,可以先自己创建一个。

开通服务后我们就可以创建新的消息了。

      1、首先点击右上角“添加应用内消息”

2.png

2、配置消息名称和消息描述。

3.png

3、设置样式和内容,完成后点击“下一步”。

在“消息种类”下拉框中选择需要创建的消息类型,然后设置对应的样式和内容。当前支持的消息类型包括:弹框消息、图片消息、Banner消息。

4.png
5.png

4、设置发送目标,完成后点击“下一步”。

a) 在“应用”栏选择需要发布应用内消息的应用包名。

b) 点击“新增条件”可以灵活设置消息发送的用户,例如应用版本、OS版本、语言、国家地区、受众群组等。其中,“用户属性”条件需要在“华为分析 -> 管理 -> 用户属性管理”中提前定义,“预测”条件需要在“我的项目->增长->预测”创建预测任务。

6.png

5、设置发送时间。

7.png

这里可以设置触发事件,除了默认的几个触发事件外还可以通过华为高级分析进行自定义,具体指导可以参考官方文档:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-appmessage-create-android-0000001072054882

8.png

最后设置转化事件,这一步是可选的。在设置转化事件前,需要将对应事件的转化事件开关打开。操作步骤如下:

在左侧导航栏中选择“华为分析 > 管理 > 事件管理”,将需要转换的事件对应的“标记为转化事件” 和“事件开关”打开。除SDK自动采集的事件外,还可以通过新建“预置事件”或“自定义事件”进行埋点分析

6、最后点击保存或发布按钮就可以完成消息设置了

9.png

三、集成SDK

添加依赖

1、在Android Studio中新建Flutter工程

10.png

2、将agconnect-services.json文件放入Android/app目录下

11.png

3、配置Maven仓地址和AGC插件地址。

①打开Flutter项目android文件夹下的build.gradle文件。

②在allprojects ->repositories里面配置maven仓地址。

③在buildscript->repositories中配置maven仓地址。

④在buildscript->dependencies中配置AppGallery Connect插件地址。

12.png

4、添加编译依赖和AGC插件地址。

①打开Flutter项目android/app文件夹下的build.gradle文件。

②在文件中添加如下配置。

13.png

在pubspec.yaml文件中添加应用内消息的pub依赖

dependencies:
  flutter:
    sdk: flutter
 agconnect_appmessaging: ^1.2.0+300

然后点击Pub get进行同步

接入功能

如果开发者对消息的样式等信息没有要求,那应用内消息完全可以0代码集成。但是应用内消息SDK还提供了自定义消息布局等功能供开发者使用。

四、设置自定义布局

首先我们需要找到Android模块的MainActivity,在onCreate中添加如下代码

AGCAppMessagingCustomEventStreamHandler.addCustomView();

这样我们就可以在dart中监控到消息的event,而后我们在dart中监听相应的event然后应用我们的自定义布局

这里我们监听到customevent后就可以直接展示我们所需要的dialog了

void _showDialog(BuildContext context, String content) {
  showDialog(
    context: context,
    builder: (BuildContext context) {
      return AlertDialog(
        key: Key("dialog"),
        title: Text("Result"),
        content: Text(content),
        actions: <Widget>[
          FlatButton(
            child: new Text("Close"),
            onPressed: () {
              Navigator.of(context).pop();
            },
          )
        ],
      );
   });
}

五、调试消息

1、在消息没有正式发布之前,我们可以对消息进行调试。调试需要获取调试设备的AAID。可以通过代码来获取这个AAID,但是由于目前只有Android的获取版本,所以我们需要将代码写在Android模块中

HmsInstanceId inst  = HmsInstanceId.getInstance(this);
Task<AAIDResult> idResult =  inst.getAAID();
idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
    @Override
    public void onSuccess(AAIDResult aaidResult) {
        String aaid = aaidResult.getId();
        textView.setText(aaid);
        Log.d(TAG, "getAAID success:" + aaid );

    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(Exception e) {
        Log.d(TAG, "getAAID failure:" + e);
    }
});

通过以上的方法我们就可以获取到这个AAID了,我们可以将这个参数保存下来,后续会使用到。

2、来到应用内消息管理台,找到刚刚我们创建的消息在操作一栏我们点击三个点的图标,找到调测

14.png

3、点击“新增测试用户”然后将我们刚刚获取的AAID输入进去即可。

15.png

4、最后点击保存测试即可。完成后我们就可以使用相应的手机进行消息调测了,消息将在应用打开后展示。

5、打包

     与Android相同,只需要在Android Studio中点击运行即可

六、应用内消息服务开发指南:

Flutter:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-appmessaging-usage-flutter-0000001063724849#EN-US_TOPIC_0000001161413365__section14250250162714

 

posted @ 2022-03-22 10:58  华为开发者论坛  阅读(273)  评论(0编辑  收藏  举报