Android 使用極光推送訊息詳細介紹之自定義訊息
前言
上一篇文章,我們詳細介紹了下極光推送的使用,不過還是差一點,那就是自定義訊息的使用.這一篇,我們將慢慢來熟悉極光推送的自定義訊息的使用,附上本人的上一篇文章,有興趣的可以去看看:
http://blog.csdn.net/greathfs/article/details/52076367
效果圖
估計慣例,上圖:
使用
首先,通過上一篇的介紹(或者去看官方的文件),我們知道自定義訊息不會展示在通知欄,完全要開發者寫程式碼去處理,我們來做一個實驗看看是不是,我們在我們的程式碼中加上輸出,最後我們看我們的輸出日誌裡面有沒有,同時我們也要看我們的模擬器上有沒有通知,好了,我們先在我們的程式碼中加上輸出,在我們的自定義的BroadcastReceiver中的onReceive()方法中加上下面那段程式碼:
if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
String message=bundle.getString(JPushInterface.EXTRA_MESSAGE);
System.out.println("收到了自定義訊息。訊息內容是:" + message);
String extra=bundle.getString(JPushInterface.EXTRA_EXTRA);
System.out.println("收到了自定義訊息。extra是:" + extra);
OK,我們現在去極光上推送一個自定義訊息
然後我們發現,我們的模擬器並沒有出現任何通知,這是我們看下我們的輸出日誌:
OK,我們看見我們那邊推送的自定義訊息這邊成功接到,同時我們還發現,我們在推送內容中輸入的資訊,打印出來是一串字串,而我們在下面可選設定裡面輸入的資料,打印出來卻是一個Json格式字串,通過解析字串,實現應用需要的推送效果
OK,既然我們知道是Json字串,那我們就把它解析出來,拿到我們需要的資料就可以了
/**
* 通過輸出日誌我們知道extra是JSON格式的字串
* 解析Json
*/
Map<String, Object> map = new HashMap<String, Object>();
JSONObject jsonObject;
try {
jsonObject = new JSONObject(extra);
String key = jsonObject.getString("key");
map.put("key", key);
} catch (JSONException e) {
e.printStackTrace();
}
map.put("message", message);
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String date = format.format(calendar.getTime());
map.put("date", date);
我們在看下那個效果圖,點選訊息後出現一個列表,其實那是一個ListView,在佈局檔案裡面就定義好了,只不過沒有讓他顯示出來,只有點選訊息時,它才會出現,那麼它的資料從哪來呢?很簡單,就是我們剛才解析出來的資料,同時用一個List去接收就好了,這樣就實現了自定義訊息了,很簡單是不是!!!
附上MainActivity程式碼:
package com.example.hfs.jpushexample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;
import com.example.hfs.jpushexample.adapter.MyAdapter;
import cn.jpush.android.api.JPushInterface;
public class MainActivity extends AppCompatActivity {
private ImageView mImageView;
private BadgeView mBadge;
private LinearLayout mLinearLayout;
private ListView mListView;
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
// JPushInterface.setAlias(this, "test123456", new TagAliasCallback() {
// @Override
// public void gotResult(int i, String s, Set<String> set) {
// Log.d("alias", "set alias result is" + i);
// }
// });
//
// Set<String> sets = new HashSet<>();
//// sets.add("sport");
// sets.add("game");
// sets.add("music");
//
// JPushInterface.setTags(this, sets, new TagAliasCallback() {
// @Override
// public void gotResult(int i, String s, Set<String> set) {
// Log.d("alias", "set tag result is" + i);
// }
// });
mImageView= (ImageView) this.findViewById(R.id.image_message);
mListView= (ListView) this.findViewById(R.id.list);
mAdapter=new MyAdapter(this,Data.data);
mListView.setAdapter(mAdapter);
mLinearLayout= (LinearLayout) this.findViewById(R.id.layout_message);
mLinearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mListView.setVisibility(View.VISIBLE);
mAdapter.notifyDataSetChanged();
Toast.makeText(MainActivity.this,"Data.data:"+Data.data.size(),Toast.LENGTH_SHORT).show();
}
});
mBadge = new BadgeView(MainActivity.this, mImageView);
if (Data.data.size()>0){
mBadge.setText(String.valueOf(Data.data.size()));
mBadge.show();
}
}
@Override
protected void onResume() {
super.onResume();
JPushInterface.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
JPushInterface.onPause(this);
}
}
解釋下其中一段程式碼:
mBadge = new BadgeView(MainActivity.this, mImageView);
if (Data.data.size()>0){
mBadge.setText(String.valueOf(Data.data.size()));
mBadge.show();
}
相關推薦
Android 使用極光推送訊息詳細介紹之自定義訊息
前言 上一篇文章,我們詳細介紹了下極光推送的使用,不過還是差一點,那就是自定義訊息的使用.這一篇,我們將慢慢來熟悉極光推送的自定義訊息的使用,附上本人的上一篇文章,有興趣的可以去看看: http://blog.csdn.net/greathfs/articl
android 極光推送 聲音與振動 的關閉和開啟
fff getc 用法 koa pub tar brush asi drawable 前言:最近剛好在寫一些推送方面的東西,又是新手,不斷在網上找資料,很少,不過還是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的。 廢話不多說。
android 極光推送 自定義聲音
可以定義樣式,那麼可以禁用極光的聲音,收到通知就播放一個聲音就好:禁用: // 極光 JPushInterface.setDebugMode(IS_DEBUG); JPushInterface.init(this); BasicPushNotificationB
ionic平臺下的Android極光推送整合文件
雖然當前提供推送服務的第三方有很多,例如jpush,友盟,個推,騰訊信鴿等。但是由於大部分第三方只支援原生環境,再加上考慮到ionic平臺下網上已經提供了一套jpush的整合方案,所以我只是針對在jpush下ionic app推送做一些簡要的整理。 廢話不多說,直入主題。
Android極光推送通過不同的通知內容跳入不同的頁面
1、在註冊清單中加入 <receiver android:name="your receiver全路徑" android:enabled="true"> <intent-filter> <!-- 以下是要
Android極光推送區分測試正式環境詳解
前沿: 極光推送是我們在實際生活中使用比較多的一種推送方式,成本低廉,不少公司都是使用的他,換工作之後,當前公司還是使用的極光推送。 問題/需求想要效果: 當前的公司需要測試環境的只能夠推送測試,正式環境的只能夠推送正式,應為IOS方存在可以直接通過配
Android 極光推送整合與使用詳解
極光新建應用 首先需要有極光賬號,在後臺新建應用 新建時會要求上傳app圖示和填寫app名字,然後需要完成推送設定 點選推送設定後出現android 與iOS的按鈕,點選android後填寫包名就好, 然後點選下載Demo來下載需要整合的控制元件
android 極光推送快速自動整合及,自定義通知樣式及雙指下拉通知欄顯示全部內容
一,整合步驟: 1.極光推送官網,註冊,登入,建立應用,用專案包名獲取AppKey: 注:包名必須與專案的包名一致 2.在 module 的 gradle 中新增依賴和支援: android { ...... defaultConfig {
Android極光推送自定義通知問題
private void showInspectorRecordNotification() { RemoteViews customView = new RemoteViews(context.getPackageName(), R.layout.
# Android 極光推送伺服器端和移動端
Android 極光推送伺服器端和移動端 這裡是Android 有關伺服器端進行推送和手機客戶端接收的一些簡單的例子 伺服器端採用的是MyEclipse2014,手機端是Android studio 2.0 下面是一個簡單的JSP頁面程式碼 <
Android極光推送(Android studio 3.0+)
使用步驟: Step 1.建立應用: 進入極光控制檯後,點選“建立應用”按鈕,進入建立應用的介面。 填上你的應用程式的名稱以及應用包名這二項就可以了, 最後點選最下方的 “建立我的應用”按鈕,建立應用完畢。 Step 2. 根目錄的主
Android Studio 3.0踩坑篇之自定義apk名稱
報錯日誌 Cannot set the value of read-only property ‘outputFile’ Android Studio3.0之前用法如下 applicationVariants.all { variant ->
VC++之自定義訊息
使用者可以自定義訊息,在應用程式中主動發出,這種訊息一般用於應用程式的某一部分內部處理。 例項說明: 當用戶按鍵盤上的游標上移鍵時,程式傳送使用者自定義訊息,在對應的訊息響應函式中彈出訊息對話方塊,顯示訊息傳送成功。 操作步驟: (1)建立一個單文
Android 中使用極光推送訊息詳細介紹(一)
簡介 在Android開發中,伺服器有時候會向客戶端推送一些使用者可能感興趣的訊息,比如:淘寶,網易新聞,美團等都會向我們客戶端推送訊息.今天我就介紹一個第三方免費推送訊息的服務:極光推送 官方資源 具體使用 效果 官方提供了Demo
Android開發之第三方推送JPush極光推送知識點詳解 學會整合第三方SDK推送
下面是一些知識點介紹,後期將會帶領大家進行程式碼實戰: 一、Android實現推送方式解決方案: 1、推送方式基礎知識: 在移動網際網路時代以前的手機,如果有事情發生需要通知使用者,則會有一個視窗彈出,將告訴使用者正在發生什麼事情。可能是未接電話
Android 根據訊息推送內容跳轉至指定頁面(極光推送)
首先認識一下安卓newIntent方法的使用:newIntent方法的使用在於如果activity已經開啟了,並設定了啟動模式為: android:launchMode="singleTask"的時候,當再次使用intent來啟動這個activtiy的時候就會進入這個方法裡
Android 使用極光推送自定義訊息打造個性的訊息推送效果
極光推送,是一個面向普通開發者開放的,免費的第三方訊息推送服務。本篇部落格將結合案例介紹極光推送自定義訊息的使用方法,利用自定義訊息實現專案中特定的訊息推送需求。 本案例將實現如圖效果: 參考官方Android SDK 教程完成鐳射推送的基本配置 區
Android開發之魅族手機收不到極光推送JPush通知
情景 收不到通知,狀態列沒有、聲音沒有、控制檯不列印log 如果是控制檯不列印log,那就找MyReceiver找到推送的程式碼部分,檢視編譯是否有問題,有問題的話是肯定不通過的。而且日誌也顯示不出來。 正常的收到推送的話會出來兩條訊息,一條是系統通知,一
極光推送之伺服器端向android等客戶端推送例項
原文:http://blog.csdn.net/u014733374/article/details/43560983 找了兩天,總算找到一個靠譜的了。開始測試的時候總是報各種錯誤,尤其是不能找到audience的錯誤,偶然想到,用極光開放平臺整合的客戶
極光推送詳細介紹
一、極光推送介紹 說起推送,不得不提到極光,高效,穩定,最重要的是免費(使用者量不是非常大的情況下),讓它在推送界佔據了很高地位,如果沒有完全沒有用過的話,還是要花點時間去研究一下,或者遇到一些問題,下面我詳細地一步一步來介紹它,廢話不多說,一起操練起來吧。 二、使用 1