1. 程式人生 > >炒現飯之友盟推送的簡單實現

炒現飯之友盟推送的簡單實現

萬能的第三方第一步:註冊賬號並建立應用拿到app_key和app_secret
這裡寫圖片描述

這裡寫圖片描述

第二步:下載SDK

第三步:將下載的檔案解壓,裡面有一個PushSDK,將其作為module匯入專案中

這裡寫圖片描述

這裡寫圖片描述

第四步:配置manifast

<meta-data
            android:name="UMENG_APPKEY"
            android:value="593e2fd6310c937413000f70" />
        <meta-data
            android:name="UMENG_MESSAGE_SECRET"
            android:value="222b7fbb8e9d2cf3a07c4dabd3a76274"
/>

裡面的APPKEY和UMENG_MESSAGE_SECRET都是前面建立應用時拿到的

第五步:配置app下的build.gradle

在Application Module的build.gradle檔案的dependencies下新增compile project(‘:PushSDK’)。

第六步:配置自定義的Application

新建一個MyApplication繼承自Application,在manifast裡面配置上

然後在MyApplication的onCreate()裡註冊推送

 PushAgent mPushAgent = PushAgent.getInstance(this
); //註冊推送服務,每次呼叫register方法都會回撥該介面 mPushAgent.register(new IUmengRegisterCallback() { @Override public void onSuccess(String deviceToken) { //註冊成功會返回device token } @Override public void onFailure(String s, String s1) { } });

第七步:在所有的Activity 的onCreate 方法或在應用的BaseActivity的onCreate方法中新增:

 PushAgent.getInstance(this).onAppStart();

這樣就可以推送簡單的訊息了,推送的步驟:

這裡寫圖片描述

點選自己的應用進入–>點選訊息列表–>新建訊息

這裡寫圖片描述

然後就是自己寫訊息的相關內容

這裡寫圖片描述

最後點選提交,手機上就能夠收到訊息了

以上是簡單的整合,接下來說說自定義訊息樣式:

  • 1 : 在MyAPPlication裡面新增自定義的
UmengMessageHandler messageHandler = new UmengMessageHandler() {
            @Override
            public Notification getNotification(Context context, UMessage msg) {
                switch (msg.builder_id) {
                    case 1:
                        Notification.Builder builder = new Notification.Builder(context);
                        RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),
                                R.layout.notification_view);
                        myNotificationView.setTextViewText(R.id.notification_title, msg.title);
                        myNotificationView.setTextViewText(R.id.notification_text, msg.text);
                        myNotificationView.setImageViewBitmap(R.id.notification_large_icon,
                                getLargeIcon(context, msg));
                        myNotificationView.setImageViewResource(R.id.notification_small_icon,
                                getSmallIconId(context, msg));
                        builder.setContent(myNotificationView)
                                .setSmallIcon(getSmallIconId(context, msg))
                                .setTicker(msg.ticker)
                                .setAutoCancel(true);

                        return builder.getNotification();
                    default:
                        //預設為0,若填寫的builder_id並不存在,也使用預設。
                        return super.getNotification(context, msg);
                }
            }
        };
        mPushAgent.setMessageHandler(messageHandler);

注意:這裡的case 1就是通知樣式編號:

這裡寫圖片描述

只有當你樣式編號寫1的時候才會顯示你自定義的佈局

還有一點要注意的是自定義的圖示要配置,並且在你的drawable資料夾下的圖片檔案

這裡寫圖片描述

自定義的xml 的notification_view.xml檔案程式碼為:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="64dp" >

    <ImageView
        android:id="@+id/notification_large_icon"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:scaleType="fitXY"
        android:src="@drawable/umeng_addalias" />

    <TextView
        android:id="@+id/notification_title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@+id/notification_large_icon"
        android:text="Title"
        android:textColor="#000000"/>

    <TextView
        android:id="@+id/notification_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/notification_title"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/notification_large_icon"
        android:text="Message"
        android:textColor="#000000"/>

    <ImageView
        android:id="@+id/notification_small_icon"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:scaleType="fitXY"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="5dp"
        android:src="@drawable/umeng_addalias" />

</RelativeLayout>

這樣就可以傳送自定義的樣式通知訊息了

這裡寫圖片描述

相關推薦

簡單實現

萬能的第三方第一步:註冊賬號並建立應用拿到app_key和app_secret 第二步:下載SDK 第三步:將下載的檔案解壓,裡面有一個PushSDK,將其作為module匯入專案中 第四步:配置manifast <meta-d

android進階4step3:Android常用框架——簡單使用(官翻)

友盟官方:快速整合文件 還有之前寫的極光推送的簡單使用:Android常用框架——極光推送的簡單使用 使用步驟: 第一步:.登入註冊友盟的賬號,並繫結郵箱   官網 第二步:以下拷貝自友盟官方文件 前言 【友盟+】訊息推送SDK 5.0.2 整合文件。

AppDelegate減負常用三方封裝 -

uia 臃腫 ant mic span 接收 常用 epo nil 之前分享過集成友盟推送的方法, 需要的朋友可以查看一下鏈接: http://www.cnblogs.com/zhouxihi/p/6533058.html 一般開發中我們比較多使用的三方有友盟推送, 友

Android

tegra mod agent pro message gpu 消息 alert 返回 當前版本號:v3.0.5 1.下載SDK解壓並導入(import module,compile project(‘:PushSDK‘)),裏面有demo,用demo的包名去官網添加一個應

遇到的問題

1、整合友盟推送,獲取不到token 解決:引入友盟pushSDk庫時,發現sdk庫Manifest.xml檔案中的許可權沒有引入到專案中,通過apktool反編譯,發現Manifest.xml中的許可權沒有合併到專案中 2、友盟推送訊息,後臺顯示傳送已送達,但是手機沒有顯示 通過日誌排

教你一步步整合+(UPUSH)

因為安卓的開源的原因,很多廠商都自己定製了自己的系統,以至於安卓的碎片化特別嚴重。今天我們要講的是推送這個功能,訊息推送在Android開發中應用的場景是越來越多了,比如說電商產品進行活動宣傳、資訊類產品進行新聞推送等等,1. 主流的第三方推送平臺分類手機廠商類:小米推送、華

iOS 播放自定義提示音(小白必讀)

越來越多的APP開始使用自己的推送提示音,下面咱就來試試。侷限型:說到推送提示音,挺多的人都會想,在收到推送的時候播放一個音訊檔案不就OK啦。這種方法有個弊端,而且可以分為兩種情況1.APP處於前臺活躍狀態:系統推送預設的提示音和自己播放的音訊檔案都會響起2.APP處於後臺或

實現訊息的完全自定義處理

1,下面的前提是必須申請了友盟且有app key 3,若開發者需要實現對訊息的完全自定義處理,則可以繼承 UmengBaseIntentService, 實現自己的Service來完全控制達到訊息的處理。     1,實現一個類,繼承 UmengBaseIntentSe

android 無法獲取token -----無法接受到訊息---

用著好好的友盟推送服務,突然間接受不到推送訊息。 首先排查了是否獲取到 token。如果獲取不到token,肯定是無法獲取到推送訊息的,因為推送訊息是一句token。增加了列印,發現沒有獲取到token。 然後回退版本,發現是可以獲取token,能收到推送。  接下來,就是

整合小米華為魅族系統通道

前言 大家做過安卓推送服務的都知道,如果安卓裝置想要收到推送,就要與伺服器建立一個長連線通道(莫非你想輪詢??)。一旦app被殺掉,維持長連線通道的pushservice服務也會被幹掉,所以裝置就處於離線狀態,也就收不到任何推送。 說到安卓,不得不提蘋果,為

教你一步步整合(UPUSH)

本文來教你一步步整合Android的友盟推送功能: 1.首先將UPush的SDK下載下來(開發文件有對應的下載位置)。 2.解壓後的目錄: 3.將  PushSDK 作為 Moudle匯入你的專案:

SDK整合測試、常見問題以及注意事項總結

      最近為了解決公司APP在一些手機出現的推送問題重新集成了最新版的友盟推送SDK,花費了幾天時間終於把整合和測試工作完成,最終在華為,Nexus,三星,小米,HTC,魅族等10多部手機上測試並達到了預想效果,這裡把期間遇到的問題和整合注意事項記錄下來方便自己總結和

php android程式碼

部分文件參閱友盟   記得在友盟後臺新增你的 ip ,否則無法推送成功 public function index() { $body = array( 'tic

整合android

這幾天專案要整合友盟推送,官網雖然有很全文件 ,但是不夠詳細,寫個部落格記錄一下。 使用感受 *文件不那麼詳細,不那麼通熟易懂。 *推送訊息傳送,延遲好高! *訊息狀態即使顯示為傳送成功了,到達客戶端也許還是要等。 *沒有說清楚各個方法會在什麼時候呼叫。 *首先去官網 開

伺服器端接入有實現為android 和 ios的功能

       在伺服器端要做可以主動推送給客戶端一些提示資訊,比如會員到期,有人讚了你的評論,有人關注你這樣的提示資訊,        作為新手,暫時還不能自己寫一些restful的東西,藉助有盟現成的推送api,做一下記錄,方便以後使用。        有盟開發文件 ht

C#微信公眾號開發接收事件與消息排重的方法

data push con 這樣的 etime ali 推薦 系列 是否 本文實例講述了C#微信公眾號開發之接收事件推送與消息排重的方法。分享給大家供大家參考。具體分析如下: 微信服務器在5秒內收不到響應會斷掉連接,並且重新發起請求,總共重試三次。這樣的話,問題就來了。有

PWA消息——Notification

更新 grant sticky cat alert gecko per tag 授權 原文   簡書原文:https://www.jianshu.com/p/69042b92cae1 大綱   1、推送通知的概念  2、消息推送的知識點  3、實例 1、推送通知的概念   

ionic cordova 極光jpush和百度定位外掛結合使用定位失效問題解決辦法

之前專案已經裝了cordova的百度定位外掛,曾經出現過定位失敗問題,那是由於專案上傳svn再checkout下來的話會丟失.so檔案。只需把.so檔案補齊就OK了。但是最近由於專案需要推送訊息功能,查了下,使用了cordova集合的極光推送jpush外掛,add了以後,就出現了我百思不得其解的bu

maven構建docker映象三部曲三:到遠端倉庫(內網和阿里雲)

在上一章《maven構建docker映象三部曲之二:編碼和構建映象》的實戰中,我們將spring boot的web工程構建成docker映象並在本地啟動容器成功,今天我們把docker-maven-plugin外掛的推送功能也用上,這樣編譯、構建、推送都能一

day93微信

python之微信推送詳解 用什麼推送    -郵件    -微信推送    -簡訊推送微信推送   -公眾號(不能主動給使用者發訊息)     -認證的公眾號:需要營業執照,需要交錢,可以發多篇文