1. 程式人生 > >Android極光推送通過不同的通知內容跳入不同的頁面

Android極光推送通過不同的通知內容跳入不同的頁面

1、在註冊清單中加入

<receiver
    android:name="your receiver全路徑"
    android:enabled="true">
    <intent-filter>
        <!-- 以下是要新增的許可權 -->
        <action android:name="cn.jpush.android.intent.REGISTRATION" />
        <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
        <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
        <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
        <action android:name="cn.jpush.android.intent.NOTIFICATION_CLICK_ACTION" />
        <action android:name="cn.jpush.android.intent.CONNECTION" />
        <category android:name="your包名" />
    </intent-filter>
</receiver>

2、編寫receiver

package com.youzheng.slqx.activity;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.Iterator;
import java.util.logging.Logger;

import cn.jpush.android.api.JPushInterface;

/**
 * 自定義接收器
 * 
 * 如果不定義這個 Receiver,則:
 * 1) 預設使用者會開啟主介面
 * 2) 接收不到自定義訊息
 */
public class MyTReceiver extends BroadcastReceiver {

   @Override
   public void onReceive(Context context, Intent intent) {
      try {
         Bundle bundle = intent.getExtras();

         if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
            String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
            //send the Registration Id to your server...

         } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {

         } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
            int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);

         } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {

            //使用者點選通知會走的方法

            //獲取推送訊息的方法
            String content = bundle.getString(JPushInterface.EXTRA_ALERT);

            // 在這裡可以自己寫程式碼去定義使用者點選後的行為
            if(context != null){
               Log.e("content",content);
               //例如 如果推送內容以【訊息】開頭 則點選後跳轉到訊息的Activity 否則跳轉到主頁面
               if(content.startsWith("【氣象預警】")||content.startsWith("【水利預警】")){//判斷內容的條件

                  Intent i = new Intent(context, YJJCActivity.class);  //開啟訊息介面
                  i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  context.startActivity(i);

               }
               if(content.startsWith("【國突預警】")){
                  Intent i = new Intent(context, YJTXActivity.class); //開啟主介面
                  i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  context.startActivity(i);
               }

                  Intent i = new Intent(context, YJJKActivity.class); //開啟主介面
                  i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  context.startActivity(i);

            }else{
            }


         } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
            //在這裡根據 JPushInterface.EXTRA_EXTRA 的內容處理程式碼,比如開啟新的Activity, 開啟一個網頁等..

         } else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
            boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
         } else {
         }
      } catch (Exception e){

      }

   }

3、極光有一個bug就是必須展開通知點選才能進入指定的頁面。????

4、還有一個注意的地方,極光推送的內容,不包含標題的,切記切記,可嘗試列印內容,通過內容的特定文字進行判斷。

相關推薦

Android極光通過不同通知內容不同頁面

1、在註冊清單中加入 <receiver android:name="your receiver全路徑" android:enabled="true"> <intent-filter> <!-- 以下是要

Android極光自定義通知問題

private void showInspectorRecordNotification() { RemoteViews customView = new RemoteViews(context.getPackageName(), R.layout.

android 極光快速自動整合及,自定義通知樣式及雙指下拉通知欄顯示全部內容

一,整合步驟: 1.極光推送官網,註冊,登入,建立應用,用專案包名獲取AppKey: 注:包名必須與專案的包名一致 2.在 module 的 gradle 中新增依賴和支援: android { ...... defaultConfig {

android 極光 聲音與振動 的關閉和開啟

fff getc 用法 koa pub tar brush asi drawable   前言:最近剛好在寫一些推送方面的東西,又是新手,不斷在網上找資料,很少,不過還是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的。   廢話不多說。  

關於百度點選通知轉的問題(Android

      今天在跟同事測試百度推送,之前一直困擾我的一個問題得到了有效解決,挺高興的,所以記錄一下,同時告誡自己,遇到問題,解決解決再解決,一定能夠解決的!      切入正題,百度推送的demo跟我們的app有些不一樣

android 極光 自定義聲音

可以定義樣式,那麼可以禁用極光的聲音,收到通知就播放一個聲音就好:禁用: // 極光 JPushInterface.setDebugMode(IS_DEBUG); JPushInterface.init(this); BasicPushNotificationB

ionic平臺下的Android極光整合文件

雖然當前提供推送服務的第三方有很多,例如jpush,友盟,個推,騰訊信鴿等。但是由於大部分第三方只支援原生環境,再加上考慮到ionic平臺下網上已經提供了一套jpush的整合方案,所以我只是針對在jpush下ionic app推送做一些簡要的整理。 廢話不多說,直入主題。

Android極光區分測試正式環境詳解

前沿: 極光推送是我們在實際生活中使用比較多的一種推送方式,成本低廉,不少公司都是使用的他,換工作之後,當前公司還是使用的極光推送。 問題/需求想要效果: 當前的公司需要測試環境的只能夠推送測試,正式環境的只能夠推送正式,應為IOS方存在可以直接通過配

Android 極光整合與使用詳解

極光新建應用 首先需要有極光賬號,在後臺新建應用 新建時會要求上傳app圖示和填寫app名字,然後需要完成推送設定 點選推送設定後出現android 與iOS的按鈕,點選android後填寫包名就好, 然後點選下載Demo來下載需要整合的控制元件

極光能收到通知卻收不到自定義訊息

public class MyJPushReceiver extends BroadcastReceiver { private static String TAG = “pushreceiver”; public MyJPushReceiv

# Android 極光伺服器端和移動端

Android 極光推送伺服器端和移動端 這裡是Android 有關伺服器端進行推送和手機客戶端接收的一些簡單的例子 伺服器端採用的是MyEclipse2014,手機端是Android studio 2.0 下面是一個簡單的JSP頁面程式碼 <

Android極光(Android studio 3.0+)

使用步驟: Step 1.建立應用: 進入極光控制檯後,點選“建立應用”按鈕,進入建立應用的介面。 填上你的應用程式的名稱以及應用包名這二項就可以了, 最後點選最下方的 “建立我的應用”按鈕,建立應用完畢。 Step 2. 根目錄的主

極光點選通知彈出toast+不能被取消的通知

傳送通知: NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Notification.Build

android點選極光通知轉到webview頁面顯示網頁,webview返回錯誤程式碼-6,無法連線伺服器

這個bug比較坑,在webview中無法開啟,將地址複製到電腦瀏覽器中能正常開啟,網上搜索到的說無法連線伺服器是沒有加"http://",可我是加了的,我加了還是打不開。某法了,去看看IP地址,終於讓我找到問題了。 後臺伺服器我搭建的是本地的,請求地址也是後臺返回來的,結果

Android快速整合極光,內含自定義通知通知物件到某一個人,或者某一群人

整合極光推送 使用jcenter 自動整合步驟 說明 : 使用 jcenter 自動整合,不需要在專案中新增 jar 和 so,jcenter 會自動完成依賴;在 AndroidManifest.xml 中不需要新增任何 JPush SDK 相關的配置,jcen

Android 根據訊息內容轉至指定頁面極光

首先認識一下安卓newIntent方法的使用:newIntent方法的使用在於如果activity已經開啟了,並設定了啟動模式為:  android:launchMode="singleTask"的時候,當再次使用intent來啟動這個activtiy的時候就會進入這個方法裡

Android開發之魅族手機收不到極光JPush通知

情景 收不到通知,狀態列沒有、聲音沒有、控制檯不列印log 如果是控制檯不列印log,那就找MyReceiver找到推送的程式碼部分,檢視編譯是否有問題,有問題的話是肯定不通過的。而且日誌也顯示不出來。 正常的收到推送的話會出來兩條訊息,一條是系統通知,一

在整合極光後,根據不同內容轉App相應的頁面

前言:由於某push到達率問題,所以我們決定換成口碑較高的極光推送,在此梳理一下完成過程,小菜鳥剛剛起步,不足之處還請各位多多指教~ 需求:1.整合極光推送 2.根據推送內容的不同跳轉相應的頁面,也就是獲取推送內容並作出處理(非官網中所

極光能獲取 registrationId,但是接收不到通知 - iOS

整合極光推送進行除錯的時候,執行 App 可以正常獲取 registrationId,但是卻遲遲無法收到推送訊息,而Android 端是可以正常收到訊息; 檢查了證書配置和極光的配置一切正常,便開始返回檢視 code 尋找問題. 最終發現如下方法中的 deviceToken 被注掉後導致註冊 i

極光傻瓜版配置(Android Studio)

Step1 :      build.gradle(Project : 專案名)中加入以下紅色部分配置(新 Android Studio 中預設就有) buildscript { repositories { jcenter()