推送开发实战:APP如何实现跟随用户不同场景,实现不同的内容推荐

1,805 阅读4分钟

  对于应用来说,借助推送能力进行用户促活尤其重要。但是常规的推送方式,往往很难把握当前用户场景和实际需求,消息到达用户手机,却没法真正引起用户注意。这其中有一个原因是消息出现在用户设备时,运营人员无法准确知道用户当前的状态,很难做到投其所好。而这种盲推的推送方式,往往事倍功半,甚至招致用户厌烦。是否有办法可以了解用户当前的一些状态信息,做到定制化的推送呢?

  华为推送5.0 新增的基于用户场景的智能推送,便是为了解决这一运营痛点。通过识别不同的用户状态,在合适的时机和场景下,向用户展示内容,从而真正的投用户所好,推送用户感兴趣的资讯。看似复杂的功能,实现起来,却非常简单。

  下面我们以一个demo开发实战为例,一起看下如何快速实现基于场景推送消息。

  此Demo已在Github上开源,如果你对实现方式感兴趣,可以下载源代码:   github.com/HMS-Core/hm…

一、开发实战

1.集成pushSDK 5.0

1.1开发准备

1.1.1添加应用的AppGallery Connect配置文件   下载"agconnect-services.json"文件。

在这里插入图片描述

  将下载的"agconnect-services.json"文件移至AndroidStudio开发工程app的根目录下。

在这里插入图片描述

1.1.2配置HMS Core SDK的Maven仓地址   打开Android Studio项目级“build.gradle”文件

在这里插入图片描述   添加HUAWEI agcp插件以及Maven代码库。

buildscript {
     repositories {
         google()
         jcenter()
         maven {url 'https://developer.huawei.com/repo/'}
     }
     dependencies {
         classpath 'com.huawei.agconnect:agcp:1.3.1.300'
     }
 }
  
 allprojects {
     repositories {
         google()
         jcenter()
         maven {url 'https://developer.huawei.com/repo/'}
     }
 }

1.1.3 添加编译依赖   打开应用级的“build.gradle”文件

在这里插入图片描述

  在“dependencies”中添加如下编译依赖。

dependencies {
     implementation 'com.huawei.hms:push:5.0.0.300'
 }

  在文件头apply plugin: 'com.android.application'下一行添加如下配置

apply plugin: 'com.huawei.agconnect'

1.1.4 在AndroidManifest.xml配置   DemoHmsMessageService类(类名由开发者自定义,此处仅是举例)继承于HmsMessageService类并实现其中的方法。

<service
     android:name=".DemoHmsMessageService"
     android:exported="false">
     <intent-filter>
         <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
     </intent-filter>
 </service>

1.1.5 配置混淆脚本   打开工程的混淆配置文件“proguard-rules.pro”

-ignorewarning
  
 -keepattributes *Annotation*
 -keepattributes Exceptions
 -keepattributes InnerClasses
 -keepattributes Signature
 -keepattributes SourceFile,LineNumberTable
  
  
 -keep class com.hianalytics.android.**{*;}
 -keep class com.huawei.updatesdk.**{*;}
 -keep class com.huawei.hms.**{*;}

  上述我们列举了集成的关键步骤,详细步骤参见pushsdk 5.0接入文档:developer.huawei.com/consumer/cn…

  确保推送功能可用再进入下一步。

二.接入情景智能推送功能

  借助情景智能推送,可以实现如下场景的推送:

  1. 识别节假日、周末
  2. 识别用户当前天气情况(炎热、适宜、寒冷)
  3. 识别用户当前紫外线强度
  4. 识别用户手机是否取消了免打扰
  5. 识别用户设备是否连接耳机或者车载蓝牙

在这里插入图片描述

  在完成推送的基本集成后,实现情景智能推送非常简单,仅需增加四行代码,申请获取用户的相关权限即可。

  • 使用节假日推送、在周末推送、紫外线强度、温度范围的场景需要配置位置权限,且需要将HMS Core和应用的位置权限都打开。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • 识别耳机插入和车载蓝牙连接的场景需要配置蓝牙权限。
<uses-permission android:name="android.permission.BLUETOOTH" />

  由于上述可能涉及到获取用户新的权限,因此记得在应用的隐私声明进行相应的更新,根据实际情况,增加上述权限的使用说明。

  需要注意,情景智能推送的基本依赖条件如下:

HMS Core版本> 5.0.0
推送服务 版本(应用市场搜索“推送服务”)推送服务版本:>11.0.0.400

  因此实际测试过程中,需要在满足上述条件的设备上进行操作。   确保上述条件满足后,接下来就可以在华为推送运营控制台上创建情景智能任务了。

三、运营控制台操作指导

  步骤一:登录华为开发者联盟,按照如下路径,进入推送控制台。

  管理中心 → AppGallery Connect(应用市场) → 我的应用 → 选择目标应用 → 推送服务

  步骤二:进入推送服务页签,点击“添加情景智能推送通知”

在这里插入图片描述

  步骤三:填写推送内容

在这里插入图片描述   步骤四:选择推送场景

在这里插入图片描述

  步骤五:点击发送,等待端侧触发场景后展示

  创建任务完成后,见到该任务状态变成已生效,代表任务已经下发到设备。

  该设备等待10分钟左右会进行情景任务创建,等到满足情景触发条件以后,就能在设备上看到推送的情景智能通知。

四、效果展示

在这里插入图片描述

  至此,我们就实现了基于用户插入耳机(或者连入蓝牙耳机)这一场景,针对性地推送。抛转引玉,更多丰富的结合场景的推送,等你来亲自探索开发。

  我们的宗旨,是让用户在合适的时间,合适的场景,接收到感兴趣的内容!

  更多功能特性,请访问  developer.huawei.com/consumer/cn…


原文链接:developer.huawei.com/consumer/cn…

原作者:别吃草莓