• 【AGC】集成华为AGC应用内消息如何实现自定义样式


     简介

    通过AppGallery Connect(简称AGC)的应用内消息(App Messaging)服务,实现用户使用应用时,向活跃用户发送有针对性的消息来鼓励用户使用应用的关键功能,从而吸引这些用户。例如,通过应用内消息,您可以鼓励用户订阅、给出某个关卡的通过提示,或者推荐某个餐厅活动。您可以定制这些消息的外观和形式,并通过事件作为触发器,在关键的时候呈现给用户。

    开通服务和集成SDK

    1. 在AppGallery Connect页面点击“我的项目”,在项目的应用列表中选择需要开通应用内消息的应用。
    2. 在导航选择“增长 >应用内消息”。如果是首次使用应用内消息服务,请点击“立即使用”开通服务。

    cke_6146.png

    3.选择常规页签下的“应用”区域,下载agconnect-services.plist配置文件。

    cke_21809.png

    4.打开命令行窗口,导航至Xcode项目所在的位置,创建Podfile文件。如果已经存在,可跳过本步骤。

    cd project-directory

    pod init

    5.编辑Podfile文件,增加pod依赖pod 'AGConnectAppLinking'。

    target 'AGC-AppMessaging-2' do

       pod 'AGConnectAppMessaging'

    end

    6.执行 pod install,然后打开xcworkspace文件查看该项目。

    pod install

    安装成功效果如下图。

    cke_44451.png

    界面设计

    本次Codelab无需特殊布局,默认布局即可。

    cke_52883.png

    创建消息

    1.在“增长”菜单下选择“应用内消息”,点击“添加应用内消息”。

    cke_59162.png

    2.填写消息名称和消息描述。

    cke_71311.png

    3.设置样式和内容,本次Codelab选择创建弹框消息,填写消息标题。按照默认勾选“允许自定义布局”,并按照约定比例规则设置图片链接。

    cke_93514.png

    cke_99913.png

    4.设置发送目标,默认条件为应用,选择当前应用的应用包名。

    cke_114417.png

    5.设置发送时间,如下图设置,意在为应用在前台或启动时展示。

    cke_129531.png

    6.标记转化事件按默认设置即可,设置完成后,点击右上角“发布”。

    cke_142386.png

    功能开发

    1.在应用的AppDelegate类中引入AGConnectCore和AGConnectAppMessaging库,并在didFinishLaunchingWithOptions方法里调用AGCInstance.startUp进行初始化。

    1. import AGConnectCore
    2. import AGConnectAppMessaging
    3.  
    4. func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    5.    AGCInstance.startUp()
    6.    return true
    7. }

    2.在应用的ViewController类中,实现消息展示组件代理。在appMessageDisplay(_ message: AGCAppMessagingDisplayMessage, delegate: AGCAppMessagingDelegate)代理中,可获得当前应用内消息的对象message,您可以根据实际情况来修改展示样式。示例代码中,获取message的内容,展示在UIAlertController弹框上,来实现简单的自定义消息展示。

    1. import AGConnectAppMessaging
    2.  
    3. class ViewController: UIViewController, AGCAppMessagingDelegate, AGCAppMessagingDisplayDelegate {
    4.  
    5.    override func viewDidLoad() {
    6.       super.viewDidLoad()
    7.       AGCAppMessaging.sharedInstance().delegate = self
    8.       AGCAppMessaging.sharedInstance().displayComponent = self
    9.    }
    10.  
    11.    func appMessageDisplay(_ message: AGCAppMessagingDisplayMessage, delegate: AGCAppMessagingDelegate) {
    12.       if message.messageType == AGCAppMessagingDisplayMessageType.card {
    13.          let card = message as! AGCAppMessagingCardDisplay
    14.          let controller = UIAlertController(title: "customDisplay", message: card.body, preferredStyle: .alert)
    15.          if (card.majorButton != nil) {
    16.             controller.addAction(UIAlertAction(title: card.majorButton?.text, style: .default, handler: { (action) in
    17.                UIApplication.shared.openURL(URL(string: "https://developer.huawei.com")!)
    18.             }))
    19.          }
    20.          self.present(controller, animated: true, completion: nil)
    21.       }
    22.    }
    23. }

    打包测试

    1. 在Xcode上点击运行按钮,在手机或模拟器上运行应用。如果不实现自定义样式的代理,展示如下。

    cke_149175.png

    2.实现自定义样式的代理,展示自定义样式。

    cke_162740.png

    恭喜您

    祝贺您,您已经成功地构建了您的第一个集成AppGallery Connect应用内消息服务的应用程序,并学到了如何集成App Messaging SDK,以及如何通过代码来自定义应用内消息的展示样式。

    参考文档

    文档中心

    欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

  • 相关阅读:
    易点易动采购管理模块:实现全生命周期管理,助力企业采购管理的高效运作
    语音信号处理的过程及其应用
    Linux安装rabbitMq(亲测可用)解决只能本地访问的问题
    RK3568开发笔记(六):开发板烧写ubuntu固件(支持mipi屏镜像+支持hdmi屏镜像)
    难对齐、难保障、难管理?一文了解字节跳动如何解决数据SLA治理难题
    前端学习地址_备忘录(随时更新)
    Qt编译zlib完成文件压缩解压(Ubuntu18.04)
    彻底解决python多进程can‘t pickle问题
    如何学习训练大模型——100条建议
    BP简单循环网络(以2020年华为杯研究生数学建模竞赛中的E题抛砖引玉)
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/126297286