Skip to content

ios jpush.openNotification 事件。点击通知打开app时能触发,从后台进入app时不能触发。 #392

Open
@caoxiemeihao

Description

@caoxiemeihao

你的运行环境

➜  node -v
v10.15.0
➜  npm -v
6.4.1
  • 插件版本:
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-ionic-webview" spec="^2.0.0" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
<plugin name="cordova-plugin-geolocation" spec="^4.0.1" />
<plugin name="cordova-plugin-camera" spec="^4.0.3" />
<plugin name="cordova-plugin-telerik-imagepicker" spec="^2.2.2" />
<plugin name="cordova-plugin-file" spec="^6.0.1" />
<plugin name="cordova-plugin-file-transfer" spec="^1.7.1" />
<plugin name="cordova.plugins.diagnostic" spec="^4.0.10" />
<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
<plugin name="cordova-plugin-screen-orientation" spec="^3.0.1" />
<plugin name="cordova-plugin-device" spec="^2.0.2" />
<plugin name="jpush-phonegap-plugin" spec="^3.6.2">
    <variable name="APP_KEY" value="*********** My appKey ***********" />
    <variable name="CHANNEL" value="developer-default" />
</plugin>
  • 平台(Android / iOS):

ios iphone-x 12.1
Xcode Version 10.1 (10B61)

  • Cordova version (cordova -v):
➜  cordova -v
8.1.2 ([email protected])
  • Cordova platform version (cordova platform ls):
➜  cordova platform --list
Installed platforms:
  ios 4.5.5
Available platforms:
  android ~7.1.1
  browser ~5.0.1
  osx ~4.0.1
  windows ~6.0.0
  • Ionic Version (if using Ionic)
➜  ionic --version
4.7.1

期望效果

  • 点击通知后,无论是直接开启app还是从后台进入app,都能够触发 jpush.openNotification 事件。

实际效果

  • 点击通知后,直接开启app能够触发 jpush.openNotification 事件。当app在后台时,从后台进入app,appjpush.openNotification 事件不触发。

重现步骤

  1. 开启app
  2. 返回home页面,等待通知
  3. 收到通知后,点击通知会进入app
  4. 预先定义的 jpush.openNotification 事件不会触发

背景

测试如下版本均是如此

  • jpush-phonegap-plugin-3.4.3
  • jpush-phonegap-plugin-3.4.5
  • jpush-phonegap-plugin-3.4.7
  • jpush-phonegap-plugin-3.5.0
  • jpush-phonegap-plugin-3.6.2

Debug logs

Xcode 日志如下

| JIGUANG | D - [JIGUANGService] Action - JPUSH begin Setup with appkey:******** My appKey ******** channel:channel name isProduction:FALSE advertisingIdentifier:
| JIGUANG | I - [JIGUANGService] 
--------------------------- JPush Log ----------------------------
--------------------JPush SDK Version:3.1.2--build:71----------
--------------------JCore Lib Version:1.2.6--build:68----------
-----------------AppKey:*********** My appKey ***********----------------
----------------------------------------------------------------
| JIGUANG | I - [JIGUANGClientController] Action - jpush setup
| JIGUANG | I - [JIGUANGClientController] Action - setup
| JIGUANG | E - [JIGUANGClientController] load aps evi error, no em provision url
| JIGUANG | D - [JIGUANGPageFlow] trySetupSession
| JIGUANG | D - [JIGUANGPageFlow] setupSession
| JIGUANG | W - [JIGUANGService] 请将JPush的初始化方法,添加到[UIApplication application: didFinishLaunchingWithOptions:]方法中,否则JPush将不能准确的统计到通知的点击数量。参考文档:https://docs.jiguang.cn/jpush/client/iOS/ios_guide_new/#_6
| JIGUANG | D - [JIGUANGService] Action - registerDeviceToken: <06d111fd 65d89fb0 bcb09d13 ed12d50d 720c1ae2 06b09300 74fc1cde 0140a490>
| JIGUANG | D - [JIGUANGUserActiveReport] report content {
    date = "2019-01-24";
    duration = "331.1";
    itime = 1548316739;
    "session_id" = 5a8e1553e35b904bd8172138ca555ff7;
    time = "15:23:11";
    timezone = "+8";
    type = "active_terminate";
}
| JIGUANG | D - [JIGUANGHttpSessionController] Action - setupSession
| JIGUANG | D - [JIGUANGNetworkController] Action - trySetupSession
| JIGUANG | D - [JIGUANGHttpSessionController] Action - setupSession
| JIGUANG | D - [JIGUANGNetworkController] userDefaut verified: 1
| JIGUANG | D - [JIGUANGUtilities] JCOREPostNotificationWithUserInfo name: kJPFNetworkIsConnectingNotification (null)
| JIGUANG | D - [JIGUANGSessionController] Action - connect
| JIGUANG | D - [JIGUANGSessionController] Action - isSisOnProtect
| JIGUANG | D - [JIGUANGSessionController] sis is not on protect
| JIGUANG | D - [JIGUANGSessionController] Action - reset sis cache
| JIGUANG | D - [JIGUANGAddressController] 开始Sis解析
| JIGUANG | D - [JIGUANGAddressController] Action - sendSisRequest
| JIGUANG | D - [JIGUANGUserDefaultsController] Action - setCurrentDeviceToken - 06d111fd65d89fb0bcb09d13ed12d50d720c1ae206b0930074fc1cde0140a490
| JIGUANG | D - [JIGUANGAddressController] get address :124.202.138.29 from host : s.jpush.cn
| JIGUANG | D - [JIGUANGTcpAddressSis] Action - sendSisRequest:toDefaultPort:toCustomPort
| JIGUANG | D - [JIGUANGUdpSocket] close udp socket,info:
| JIGUANG | D - [JIGUANGUdpSocket] send udp data
| JIGUANG | D - [JIGUANGUdpSocket] send udp data succeed
| JIGUANG | D - [JIGUANGUdpSocket] udp socket begin send behavior
| JIGUANG | D - [JIGUANGTcpAddressSis] Action - parse
| JIGUANG | D - [JIGUANGTcpAddressSis] Action - parse ips address
| JIGUANG | D - [JIGUANGTcpAddressSis] Action - parseOptionAddress
| JIGUANG | D - [JIGUANGUdpSocket] close udp socket,info:
| JIGUANG | D - [JIGUANGSessionController] current network, ipv4
| JIGUANG | D - [JIGUANGSessionController] Action - connectTcp
| JIGUANG | D - [JIGUANGSessionController] Action - connectTcpAddress:
| JIGUANG | D - [JIGUANGSessionController] connectTcp:43.247.88.100:7002
| JIGUANG | I - [JIGUANGSessionController] connecting with coreAddr 43.247.88.100,port 7002
| JIGUANG | D - [JIGUANGReport] send report:(
        {
        date = "2019-01-24";
        duration = "331.1";
        itime = 1548316739;
        "session_id" = 5a8e1553e35b904bd8172138ca555ff7;
        time = "15:23:11";
        timezone = "+8";
        type = "active_terminate";
    }
) log succed
| JIGUANG | D - [JIGUANGReport] send report:(
        {
        date = "2019-01-24";
        itime = 1548316739;
        "session_id" = 925589a515ee9ed9af03c847603a90fe;
        time = "15:58:59";
        timezone = "+8";
        type = "active_launch";
    }
) log succed
| JIGUANG | D - [JIGUANGTcpAddressSis] Action - sisReport:port
| JIGUANG | D - [JIGUANGTcpSocket] 连接主机成功
| JIGUANG | D - [JIGUANGUtilities] JCOREPostNotificationWithUserInfo name: kJPUSHNetworkDidSetupNotification (null)
| JIGUANG | D - [JIGUANGSessionController] Action - doSendTcpRequest
| JIGUANG | I - [JIGUANGLogin] 
----- login result -----
uid:20428629637 
registrationID:141fe1da9ef575fafc0 
idc:0
| JIGUANG | D - [JIGUANGTcpSocket] Got tcp command
| JIGUANG | D - [JIGUANGSessionController] Action - onAckOrRespReceived:
| JIGUANG | D - [JIGUANGSessionController] Event - onLoginRespond
| JIGUANG | D - [JIGUANGUtilities] JCOREPostNotificationWithUserInfo name: kJPUSHNetworkDidLoginNotification (null)
| JIGUANG | D - [JIGUANGService] Action - setDebugMode
| JIGUANG | D - [JIGUANGService] Action - registrationID

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions