android進階4step3:Android常用框架——友盟推送簡單使用(官翻)
友盟官方:快速整合文件
還有之前寫的極光推送的簡單使用:Android常用框架——極光推送的簡單使用
使用步驟:
第一步:.登入註冊友盟的賬號,並繫結郵箱 官網
第二步:以下拷貝自友盟官方文件
前言
【友盟+】訊息推送SDK 5.0.2 整合文件。
此文件適用於Android Studio線上整合,如您需要離線下載SDK方式整合,請參考手動整合文件-Android Studio
開發環境
IDE:Android Studio
本文件提供的UmengPushDemo工程是Android Studio基於Maven的快速整合方案。該方案配置簡單,方便後續維護和更新。因此強烈推薦開發者根據本文件使用Android Studio進行整合工作。
示例工程下載地址:
https://download.umeng.com/online/2018/12/20181219173244199.zip
訊息推送SDK快速整合
1、Appkey申請
請在U-Push官網為您的應用申請Appkey(詳細操作路徑:U-Push官網->應用->新建應用->建立新應用)
注:已經使用了【友盟+】統計的使用者,請從U-Push官網從已有應用中新增關聯。
獲取應用對應的Appkey和Umeng Message Secret,這兩個值請務必留意,在後續SDK初始化中需要用到。
2、接入Push SDK
在您的Android Studio工程的App模組的build.gradle配置指令碼中新增maven遠端依賴,匯入最新版本PushSDK:
請檢視您專案中com.android.tools.build:gradle配置,如果版本號<3.0.0,請使用如下配置指令碼新增遠端依賴:
//PushSDK必須依賴基礎元件庫,所以需要加入對應依賴 compile 'com.umeng.umsdk:common:1.5.4' //PushSDK必須依賴utdid庫,所以需要加入對應依賴 compile 'com.umeng.umsdk:utdid:1.1.5.3' //PushSDK compile 'com.umeng.umsdk:push:5.0.2'
請檢視您專案中com.android.tools.build:gradle配置,如果版本號>=3.0.0,請使用如下配置指令碼新增遠端依賴:
//PushSDK必須依賴基礎元件庫,所以需要加入對應依賴
implementation 'com.umeng.umsdk:common:1.5.4'
//PushSDK必須依賴utdid庫,所以需要加入對應依賴
implementation 'com.umeng.umsdk:utdid:1.1.5.3'
//PushSDK
implementation 'com.umeng.umsdk:push:5.0.2'
在工程build.gradle配置指令碼中buildscript和allprojects段中新增【友盟+】sdk 新maven倉庫地址
buildscript {
repositories {
google()
jcenter()
maven { url 'https://dl.bintray.com/umsdk/release' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven { url 'https://dl.bintray.com/umsdk/release' }
}
}
3、基礎介面引入
1、務必
在工程的自定義Application類的 onCreate()
方法中做SDK程式碼初始化工作。
// 在此處呼叫基礎元件包提供的初始化函式 相應資訊可在應用管理 -> 應用資訊 中找到 http://message.umeng.com/list/apps
// 引數一:當前上下文context;
// 引數二:應用申請的Appkey(需替換);
// 引數三:渠道名稱;
// 引數四:裝置型別,必須引數,傳引數為UMConfigure.DEVICE_TYPE_PHONE則表示手機;傳引數為UMConfigure.DEVICE_TYPE_BOX則表示盒子;預設為手機;
// 引數五:Push推送業務的secret 填充Umeng Message Secret對應資訊(需替換)
UMConfigure.init(this, "替換為Appkey,服務後臺位置:應用管理 -> 應用資訊 -> Appkey", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "替換為祕鑰資訊,服務後臺位置:應用管理 -> 應用資訊 -> Umeng Message Secret");
2、Push註冊在UMConfigure.init方法之後註冊,註冊成功後可獲取deviceToken,進行訊息下發。呼叫程式碼如下所示:
UMConfigure.init(this, "替換為Appkey,服務後臺位置:應用管理 -> 應用資訊 -> Appkey", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "替換為祕鑰資訊,服務後臺位置:應用管理 -> 應用資訊 -> Umeng Message Secret");
//獲取訊息推送代理示例
PushAgent mPushAgent = PushAgent.getInstance(this);
//註冊推送服務,每次呼叫register方法都會回撥該介面
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//註冊成功會返回deviceToken deviceToken是推送訊息的唯一標誌
Log.i(TAG,"註冊成功:deviceToken:--------> " + deviceToken);
}
@Override
public void onFailure(String s, String s1) {
Log.e(TAG,"註冊失敗:--------> " + "s:" + s + ",s1:" + s1);
}
});
- deviceToken是【友盟+】訊息推送生成的用於標識裝置的id,長度為44位,不能定製和修改。同一臺裝置上不同應用對應的deviceToken不一樣。獲取deviceToken的值後,可進行訊息推送測試!
4、應用資料統計介面
在所有的Activity 的onCreate 方法或在應用的BaseActivity的onCreate方法中新增:
PushAgent.getInstance(context).onAppStart();
注:該方法是【友盟+】Push後臺進行日活統計及多維度推送的必呼叫方法,請務必呼叫!
5、訊息推送
恭喜您已經順利獲取deviceToken!我們馬上可以向這臺裝置推送訊息了~
可以直接傳送到安裝該app的真機或者模擬器:
首先執行app(app被殺死時收不到,只有開啟才能收到)
訊息列表—>訊息通知—>新建通知—填寫內容—>設定(引數)—>點擊發送
效果:
程式碼:
自定義的MyApplication類
public class MyApplication extends Application {
private static final String TAG = "MyApplication";
@Override
public void onCreate() {
super.onCreate();
// 在此處呼叫基礎元件包提供的初始化函式 相應資訊可在應用管理 -> 應用資訊 中找到 http://message.umeng.com/list/apps
// 引數一:當前上下文context;
// 引數二:應用申請的Appkey(需替換);
// 引數三:渠道名稱;
// 引數四:裝置型別,必須引數,傳引數為UMConfigure.DEVICE_TYPE_PHONE則表示手機;傳引數為UMConfigure.DEVICE_TYPE_BOX則表示盒子;預設為手機;
// 引數五:Push推送業務的secret 填充Umeng Message Secret對應資訊(需替換)
UMConfigure.init(this, "5c1c9a0bb465f548e4000394", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "c9674cbe2cc4beda9cd4dc4256c7c892");
//獲取訊息推送代理示例
PushAgent mPushAgent = PushAgent.getInstance(this);
//註冊推送服務,每次呼叫register方法都會回撥該介面
mPushAgent.register(new IUmengRegisterCallback() {
@Override
public void onSuccess(String deviceToken) {
//註冊成功會返回deviceToken deviceToken是推送訊息的唯一標誌
Log.i(TAG, "註冊成功:deviceToken:--------> " + deviceToken);
}
@Override
public void onFailure(String s, String s1) {
Log.e(TAG, "註冊失敗:--------> " + "s:" + s + ",s1:" + s1);
}
});
//拿到通知的訊息
UmengMessageHandler messageHandler = new UmengMessageHandler() {
@Override
public Notification getNotification(Context context, UMessage uMessage) {
//通知的標題
String title = uMessage.title;
//通知的內容
String ticker = uMessage.ticker;
Log.e(TAG, "getNotification:--------> " + "title:" + title + ",ticker:" + ticker);
return super.getNotification(context, uMessage);
}
};
mPushAgent.setMessageHandler(messageHandler);
//通知到達點選的行為
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler() {
//直接開啟app
@Override
public void launchApp(Context context, UMessage msg) {
super.launchApp(context, msg);
Log.e(TAG, "launchApp:--------> " + "msg:" + msg);
}
//開啟指定的Url
@Override
public void openUrl(Context context, UMessage msg) {
super.openUrl(context, msg);
Log.e(TAG, "openUrl:--------> " + "msg:" + msg);
}
//開啟指定的Activity
@Override
public void openActivity(Context context, UMessage msg) {
super.openActivity(context, msg);
Log.e(TAG, "openActivity:--------> " + "msg:" + msg);
}
//開啟自定義的行為
@Override
public void dealWithCustomAction(Context context, UMessage msg) {
Log.e(TAG, "dealWithCustomAction:--------> " + "msg:" + msg.custom);
Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
//如果是點選通知欄的動作
//點選後跳轉
Intent intent1 = new Intent(context, MainActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent1);
}
};
mPushAgent.setNotificationClickHandler(notificationClickHandler);
}
}
注意要在配置檔案中,把這個MyApplication進行靜態註冊
<application
....
//新增這一句程式碼
android:name=".MyApplication"
.....
>
<activity android:name=".MainActivity">
....
</activity>
</application>
也可以測試:
新增測試裝置:
在【友盟+】訊息推送服務Push後臺的“測試模式”中填寫獲取到的deviceToken,將該裝置新增為測試裝置:
在測試訊息中新建訊息,詳細過程如下所示,詳細過程如下所示:
6、接入完成
此時在您的測試手機上可以看到您剛才的推送訊息!
至此您已完整集成了【友盟+】訊息推送SDK,更多高階功能請見Push SDK高階功能