android 点击极光推送的通知栏消息 不触发对应的回调方法

android
标签: #<Tag:0x00007fb84db3ea18>

(code) #1

android 点击极光推送的通知栏消息 不触发对应的回调方法


#2

1、参考 demo
2、提供你的客户端日志,你说的是哪一个回调?


(code) #3
<!--极光推送 start-->
        <receiver
            android:name=".module.push.PushMsgReceiver"
            android:enabled="true"
            android:process=":remote"
            android:exported="false">
            <intent-filter>
                <!--Required 用户注册SDK的intent-->
                <action android:name="cn.jpush.android.intent.REGISTRATION" />
                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED_PROXY" />
                <!--Required 用户接收SDK消息的intent-->
                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
                <!--Required 用户接收SDK通知栏信息的intent-->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
                <!--Required 用户打开自定义通知栏的intent-->
                <!--<action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />-->
                <!-- 接收网络变化 连接/断开 since 1.6.3 -->
                <action android:name="cn.jpush.android.intent.CONNECTION" />
                <category android:name="${JPUSH_PKGNAME}" />
            </intent-filter>
        </receiver>


        } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
            Log.d(TAG, "用户点击打开了通知");
            openNotification(context,intent.getExtras());

        } else {
            Log.d(TAG, "Unhandled intent - " + intent.getAction());
        }


    }

    private void openNotification(Context context, Bundle bundle) {
        String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
        String myValue = "";
        try {
            JSONObject extrasJson = new JSONObject(extras);
            myValue = extrasJson.optString("myKey");
        } catch (Exception e) {
            Log.w(TAG, "Unexpected: extras is not a valid json", e);
            return;
        }
        if (!TextUtils.isEmpty(myValue)) {
            Intent mIntent = new Intent(context, HomeActivity1.class);
            mIntent.putExtras(bundle);
            mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(mIntent);

        }
    }

(code) #4
<receiver
            android:name=".module.push.PushMsgReceiver"
            android:enabled="true"
            android:process=":remote"
            android:exported="false">
            <intent-filter>
                <!--Required 用户注册SDK的intent-->
                <action android:name="cn.jpush.android.intent.REGISTRATION" />
                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED_PROXY" />
                <!--Required 用户接收SDK消息的intent-->
                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
                <!--Required 用户接收SDK通知栏信息的intent-->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
                <!--Required 用户打开自定义通知栏的intent-->
                <!--<action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />-->
                <!-- 接收网络变化 连接/断开 since 1.6.3 -->
                <action android:name="cn.jpush.android.intent.CONNECTION" />
                <category android:name="${JPUSH_PKGNAME}" />
            </intent-filter>
        </receiver>

(code) #5

广播接收者 PushMsgReceiver 在 manifest 中不添加

 action   <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />   

sdk 默认 触发点击桌面 app ; 但是我添加了 它不触发我的回调啊

        } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
            Log.d(TAG, "用户点击打开了通知");
            openNotification(context,intent.getExtras());

        }

#8

这是需要点击通知栏上面的消息才会走的。
请参考示例,你在推送的时候,Notification里面有没有传 extra 信息
https://docs.jiguang.cn/jpush/client/Android/android_senior/#vs


(code) #9

搞定了,sdk 有保活手段吗??


#10

有一个拉起服务。