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">