對於應用來講,藉助推送能力進行用戶促活尤爲重要。可是常規的推送方式,每每很難把握當前用戶場景和實際需求,消息到達用戶手機,卻無法真正引發用戶注意。這其中有一個緣由是消息出如今用戶設備時,運營人員沒法準確知道用戶當前的狀態,很難作到投其所好。而這種盲推的推送方式,每每事倍功半,甚至招致用戶厭煩。是否有辦法能夠了解用戶當前的一些狀態信息,作到定製化的推送呢?android
華爲推送5.0 新增的基於用戶場景的智能推送,即是爲了解決這一運營痛點。經過識別不一樣的用戶狀態,在合適的時機和場景下,向用戶展現內容,從而真正的投用戶所好,推送用戶感興趣的資訊。看似複雜的功能,實現起來,卻很是簡單。git
下面咱們以一個demo開發實戰爲例,一塊兒看下如何快速實現基於場景推送消息。github
此Demo已在Github上開源,若是你對實現方式感興趣,能夠下載源代碼:
https://github.com/HMS-Core/hms-push-clientdemo-androidjson
1.1.1添加應用的AppGallery Connect配置文件
下載"agconnect-services.json"文件。app
將下載的"agconnect-services.json"文件移至AndroidStudio開發工程app的根目錄下。maven
1.1.2配置HMS Core SDK的Maven倉地址
打開Android Studio項目級「build.gradle」文件ide
添加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」文件gradle
在「dependencies」中添加以下編譯依賴。ui
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接入文檔:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/android-config-agc-0000001050170137
確保推送功能可用再進入下一步。
藉助情景智能推送,能夠實現以下場景的推送:
在完成推送的基本集成後,實現情景智能推送很是簡單,僅需增長四行代碼,申請獲取用戶的相關權限便可。
<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分鐘左右會進行情景任務建立,等到知足情景觸發條件之後,就能在設備上看到推送的情景智能通知。
至此,咱們就實現了基於用戶插入耳機(或者連入藍牙耳機)這一場景,針對性地推送。拋轉引玉,更多豐富的結合場景的推送,等你來親自探索開發。
咱們的宗旨,是讓用戶在合適的時間,合適的場景,接收到感興趣的內容!
更多功能特性,請訪問 https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/service-introduction-0000001050040060
原文連接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202326981197520144&fid=18
原做者:別吃草莓