未定义用户通知栏点击事件,为何仍然会打开App的launchActivity?

android
jpush
标签: #<Tag:0x00007fb83ca8e368> #<Tag:0x00007fb83ca8e070>

(yumi) #1

出现问题的机型:华为P10
是否必现:是
详细描述:

 <receiver
            android:name=".jpush.CustomReceiver"
            android:enabled="true"
            android:exported="false">
            <intent-filter>

                <!-- Required 用户注册SDK的intent -->
                <action android:name="cn.jpush.android.intent.REGISTRATION" />
                <!-- 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="com.jsbc.zjs" />
            </intent-filter>
        </receiver>

在manifest中已经添加了action为cn.jpush.android.intent.NOTIFICATION_OPENED的filter。

if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
                // 用户点击了通知
                LogUtils.d(TAG + " [MyReceiver] 用户点击打开了通知");
            } 

在该广播的onReceive()中并没有做任何操作。但是在华为P10的机型上,点击该通知会打开App的launchActivity(其他机型点击后通知栏通知消失,无任何其他操作,符合预期)。
####请问下,极光在处理ACTION_NOTIFICATION_OPENED这个action的时候,华为的表现为何如此怪异?


#2

提供一下你在华为手机上测试得到的 log 信息。


(yumi) #3

多谢回复。已经找到原因了。是因为部分手机会折叠同一App的多条推送通知,用户在操作的时候,直接点击了折叠的多条推送,而不是点击的单条推送,导致系统无法判断,直接打开了App。这是一个用户误操作的问题。


#4

好的,对于这种通知折叠的情况,是 ROM 决定的,你们可以考虑设置 通知栏保存的数据 小于 他决定折叠的这个数据。
https://docs.jiguang.cn/jpush/client/Android/android_api/#api_9