如何在 Flutter 中集成華為應用內消息

来源:https://www.cnblogs.com/developer-huawei/archive/2022/03/22/16033539.html
-Advertisement-
Play Games

一、安裝flutter環境 1、下載Flutter sdk包,地址:https://flutter.dev/docs/get-started/install/windows 2、將壓縮包解壓到任意文件夾 3、將flutter命令文件添加到環境變數中 4、在Android Studio中下載Flutt ...


一、安装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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 博客推行版本更新,成果積累制度,已經寫過的博客還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神。因此,大家有何建議歡迎在評論區踴躍發言,你們的支持是我最大的動力,你們敢投,我就敢肝 ...
  • 視圖 常見的資料庫對象 視圖概述 為什麼使用視圖 可以幫助我們使用表中的部分數據,對其修改可以改變原來表中的值 可以簡化查詢 控制數據的訪問(許可權) 視圖的理解 視圖是一種虛擬表,本身不具有數據的,占用極少的記憶體 視圖建立在已有表的基礎上,我們可以視圖所依據的表叫做基表 視圖的創建和刪除只會影響視圖 ...
  • 目前各大公司的產品需求和內部決策對於數據實時性的要求越來越迫切,需要實時數倉的能力來賦能。傳統離線數倉的數據時效性是 T+1,調度頻率以天為單位,無法支撐實時場景的數據需求。即使能將調度頻率設置成小時,也只能解決部分時效性要求不高的場景,對於實效性要求很高的場景還是無法優雅的支撐。因此實時使用數據的... ...
  • 菜鳥供應鏈金融慢sql治理已經有一段時間,自己負責的應用持續很長時間沒有慢sql告警,現階段在推進組內其他成員治理應用慢sql。這裡把治理過程中的一些實踐拿出來分享下。 ...
  • 最近安裝SQL 2019遇到這個問題,試過網上幾乎所有辦法,都安裝不上。最後在微軟社區提問解決了,由於這個問題不常見,並且網上幾乎沒有正確的解決方案,因此將我的解決過程及經驗記錄分享一下,也為後來者提供參考。 1、如果是許可權問題,現有的網上很多修改許可權的方案是可以解決安裝問題的,在此不做介紹。 2、 ...
  • 一、介紹 Redis誕生於2009年全稱是Remote Dictionary Server,遠程詞典伺服器,是一個基於記憶體 的鍵值型NoSQL資料庫。 特征: ●鍵值(key-value)型, value支持 多種不同數據結構,功能豐富 ●單線程, 每個命令具備原子性 ●低延遲,速度快(基於記憶體、1 ...
  • 前言 21世紀,安卓虛擬機正在一步步的走入我們的生活,小到個人部分朋友在電腦上使用安卓虛擬機玩手游,大到安卓從業人員在虛擬機上面跑程式。不得不承認,對於每一位Androider 而言,安卓虛擬機是我們日常開發中不可或缺的一環,但是關於安卓虛擬機的一些知識點和小細節你真的完全掌握了麽?本文將就主要包括 ...
  • 想獲取一首歌的伴奏卻找不到資源怎麼辦?沒關係,我們可以自己解決。音頻編輯服務提供音源分離的功能,幫助開發者在應用中構建人聲與伴奏分離的功能。 目前,音源分離功能已經開放了人聲與伴奏、樂器等多種分離的方式,可以實時解析並將樂器中的人聲和各種樂器元素提取到獨立的音軌上,滿足創作者對伴奏製作、扒帶、音樂創 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...