1. 程式人生 > >notification點選並帶資料跳轉到具體頁面

notification點選並帶資料跳轉到具體頁面

 public int notify(MPushMessage message, Intent clickIT) {
        if (message == null || clickIT == null) return -1;
Integer nid = message.getNid();
//1.如果NID不存在則新生成一個,且新生成的Id在nIds是不存在的
if (nid == null || nid <= 0) {
            do {
                nid = nIdSeq++;
} while (nIds.containsKey(nid));
} //處理總數 Integer count = nIds.get(nid); if (count == null) { count = 0; } nIds.put(nid, ++count); Intent cancelIT = new Intent(MPushReceiver.ACTION_NOTIFY_CANCEL);//取消通知意圖 cancelIT.putExtra(EXTRA_MESSAGE_ID, nid); clickIT.putExtra(EXTRA_MESSAGE_ID, nid);//putExtras的key和value,在myReceiver裡面接收到點選跳轉動作是進行處理跳轉到具體頁面
// TODO: 2018/2/2 //現在是點選跳轉到網路訂單頁面 if (context != null) { String orderNun = message.getContent().substring(message.getContent().indexOf("[") + 1, message.getContent().indexOf("]")); Intent intent; if (message.getContent().contains("貨流")){ clickIT.putExtra(Constants.ORDER_NUM
,orderNun); clickIT.putExtra(Constants.INTENT_TYPE,"貨流"); // intent = new Intent(context, StockFlowActivity.class); }else if(message.getContent().contains("網路")) { // intent = new Intent(context, WebOrderActivity.class); clickIT.putExtra(Constants.ORDER_NUM,orderNun); clickIT.putExtra(Constants.INTENT_TYPE,"網路"); }else { // intent = new Intent(context, MainActivityV2.class); clickIT.putExtra(Constants.ORDER_NUM,orderNun); } // PendingIntent clickPI = PendingIntent.getActivity(context, 0, clickIT, PendingIntent.FLAG_CANCEL_CURRENT);//處理點選 PendingIntent clickPI = PendingIntent.getBroadcast(context, nid, clickIT, PendingIntent.FLAG_UPDATE_CURRENT);//處理點選 PendingIntent cancelPI = PendingIntent.getBroadcast(context, 0, cancelIT, 0);//處理滑動取消 content = message.getContent(); push_content = content.substring(content.indexOf(":") + 1); //例項化通知欄構造器NotificationCompat.Builder: nm.notify(nid, build(clickPI, cancelPI, message.getTicker(), message.getTitle(), push_content, count)); } Log.e("freak","message="+message.getContent()); return nid; }
一、獲取到推送的訊息,並擷取自己需要的資料,在notification設定的intent上設定資料回傳,例如:
clickIT.putExtra(Constants.ORDER_NUM,orderNun);//這裡通過了key和value的方式put進了intent物件,在跳轉的activity裡面根據id去拿到具體的資料
二、還有一個就是多個notification的點選,平時我們做的demo都是預設點選最新的那一個,現在如果我們需要在得到多個notification的情況下進行點選,並得到我們點選的notification的資料的話,我們需要在
PendingIntent設定的時候就要設施notification的id,根據這個id去得到我們點選的是notification的哪一個。

問題主要出在PendingIntent.getActivity()或者PendingIntent.getBroadcast()的第二個引數,平常demo直接寫0的,應用場景不同所以沒出問題,實際上是通過該引數來區別不同的intent的,如果id相同,就會覆蓋掉之前的intent了。所以總是獲取到最後一個intent。

最後改成:

PendingIntent clickPI = PendingIntent.getBroadcast(context, nid, clickIT, PendingIntent.FLAG_UPDATE_CURRENT);//處理點選
第二個引數就是每一次接收到一個推送顯示的notification的id,也就是告訴你這是第幾條推送,根據這個值就可以得到具體的notification的值了,而不是得到最新的額notification的值。

相關推薦

notification資料具體頁面

public int notify(MPushMessage message, Intent clickIT) { if (message == null || clickIT == null) return -1; Integer nid = messag

js實現A頁面資料B頁面返回上一層

要實現從一個頁面A跳到另一個頁面B,js實現就在A的js程式碼加跳轉程式碼 JS跳轉大概有以下幾種方式: 第一種:(跳轉到b.html)<script language="javascrip

eclipse ctrl+滑鼠左鍵類名不到class類而是到jar包設定

目標: eclipse ctrl+滑鼠左鍵點選類名不跳轉到class類而是跳轉到jar包設定 問題描述:剛一開始我點選【ctrl+滑鼠左鍵】選擇某個類名:com.apache.testClass  會自動跳轉到類:test.jar中,但是不知道為何突然,每次點的時候  

ios開發:怎麼實現一個按鈕,到一個新的介面,回退到上一介面

iOS三種檢視切換的原理各不相同:UITabBarController:以平行的方式管理檢視,各個檢視之間往往關係並不大,每個加入到UITabBarController的檢視都會進行初始化即使當前不顯示在介面上,相對比較佔用記憶體。UINavigationControlle

小程式輪播圖到tab導航介面

需求:小程式點選輪播圖跳轉到tab導航介面,效果如下所示 點選輪播圖的圖片,跳轉到我的介面上 先實現以下的程式碼,在以下的基礎上,開始實現需求 微信小程式底部導航欄https://www.jianshu.com/p/89a63dc99839 微信小程式輪播

微信小程式多次navigator無反應

今天在弄微信小程式的時候使用到navigator元件實現跳轉出現了一個問題就是我點選我設定的button然後用navigator巢狀進去,當沒點選一次button就可以跳轉到相應的介面,當我重複四次的時候問題出現了,不管我怎麼點選也不會跳轉,最後還是通過百度找到了解決方案。 【程式碼展示】

collectionView必須兩次才

  今天遇到一個很奇怪的現象:collectionView必須點選兩次才能跳轉。具體看程式碼: -(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *

涉及多個Fragment,其中一個fragment中的“登入”按鈕,到“登入”介面時,出現程式閃退現象

問題說明:我想實現從當前fragment_me中點選一下登入按鈕,跳轉到登入介面,所以我在MeFragment.java裡的onCreate()方法中為TextView控制元件新增監聽事件。但在實際執行中,我點選“Me”之後,會出現閃退現象。 錯誤:空指標異常 出現閃

a標籤超連結 javascript:void(0),超連結不,不響應

讓超連結點選後不跳轉,可以用href = "#",但是這個#就會錨點到頁面最上邊     點選連結後不跳轉可以設定成     1.<a href="javascript:void(0);" >javascript:void(0);</a>     2

Android實現ListView顯示資訊,每個item,到相應介面

介面如下:(做這個目的僅僅是為了學習一點小知識,因為自己才剛開始) 實現的方法比較簡單,就是定義一個ListView,然後設定監聽,ListView對每個條目的監聽是setOnItemClickListener。 onItemClick(AdapterView&

第三方App關注公眾號,到微信公眾號的實現方法.

現在越來越多的App都要求關注公眾號,實現跳轉到微信公眾號介面,或者已經關注的人,直接進來微信公眾號中聊天! 在之前可以通過以下方式實現跳轉:// Intent i = new Intent(Intent.ACTION_VIEW); //

recyclerview的item(eventbus)傳值

**第一步,匯入依賴,如: /*recyclerview依賴*/ compile 'com.android.support:recyclerview-v7:26.1.0' /*fresco載入圖片*/ compile 'com.f

iOS 從一個APP到另一個APP,引數到指定頁面

功能實現:A跳到B並開啟B中指定頁面 步驟: 1.首先建立兩個專案(專案A,專案B),在專案B中的info.plist檔案中新增URL Types,如下圖所示:其中URL idenifier是專案B的bundle id ,URL Schemes 中新增一個命令字首

android 分享的連結到應用程式

我們時常會遇到這種需求,點選一個連結跳轉到我們的應用程式當中。 (點選一個連結跳轉到一個下載apk的html,這是沒有安裝這個apk的情況,如果安裝了可以直接跳轉到我們的apk應用當中) 如果需要帶入資料過去只需在連結的網址上加入引數即可例如: <a href="ht

UITableViewCell兩次才解決辦法

今天寫專案的時候出現一個很奇怪的現象,就是每次點選cell的時候需要點選兩次,才能進入。比如  :要先點選一下10000000這個cell,再點選0999990099這個cell才會進入,但是在tableView:(UITableView *)tableView didS

iOS極光推送 推送訊息頁面

最近在搞極光推送,之前用的百度推送,但是訊息延遲的厲害,就換了極光,換就換吧,無所謂反正我不會,於是就開始看極光推送文件,心裡罵著跟百度的文件詳細程度不能比啊,文件很短一會兒就看完,其實文件的主要程式碼這些推送平臺都一樣,說到這我想吐槽一下,本來以為推送很容易,實際就是容易

【Qt5】寫一個更容易滑鼠遊標的QSlider的子類

2018.02.12更新優化了遊標的控制元件視窗屬性,遊標不再受任何元件的範圍限制;優化了遊標出現的位置;優化了滑鼠點選得到的值,四捨五入得到。2018.02.22更新使用自定義訊號sig_triggeredToValue,控制元件被觸發時發射此訊號,傳遞出滑塊變化後的值,不

使用YYText-文字藍色文字實現超連結

NSString *text = @"唐寅,生於成化六年二月初四,卒於嘉靖二年十二月二日,字伯虎,後改字子畏,號六如居士、桃花庵主、魯國唐生、逃禪仙吏等,明代畫家、書法家、詩人。"; NSMutableAttributedString *one = [[NSMutableA

ListView 很短的時間內連續同一個item會兩次

我得解決方案是自定義一個方法 public abstract class NoDoubleItemClickListener implements OnItemClickListener { public static final int MIN_CLICK_DE

a標籤不連結

a標籤已經設定href的情況下不做跳轉動作,直接給a標籤新增一個點選事件就行了。 html程式碼: <div id="hf"> <a href="www.google.cn">