jpush-react-native icon indicating copy to clipboard operation
jpush-react-native copied to clipboard

Background notifications doesn't work.

Open GeorgeMurAlkh opened this issue 5 years ago • 0 comments

你的运行环境

  • 插件版本: 2.8.0
  • react-native 版本:0.61.2

期望效果

Notifications should appear when application is closed.

实际效果

Notifications not appears when application is closed. When application is open - phone receiving notifications.

重现步骤

My AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.application.example">

  <uses-permission android:name="android.permission.INTERNET" />

  <!-- Required -->
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <!-- Include this only if you are planning to use the camera roll -->
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <!-- Include this only if you are planning to use the microphone for video recording -->
  <!-- <uses-permission android:name="android.permission.RECORD_AUDIO"/> -->

  <!-- Required  一些系统要求的权限,如访问网络等-->
  <uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" />
  <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <!--华为角标-->
  <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE "/>

  <uses-permission android:name="android.permission.VIBRATE"/>
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 用于开启 debug 版本的应用在6.0 系统上 层叠窗口权限 -->
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /><!-- Android Q后台定位权限-->
  <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
  <uses-permission android:name="android.permission.GET_TASKS" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>

      <activity
        android:name=".wxapi.WXEntryActivity"
        android:label="@string/app_name"
        android:exported="true"
      />

      <activity
        android:name=".wxapi.WXPayEntryActivity"
        android:label="@string/app_name"
        android:exported="true"
      />

      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />

      <!-- JPUSH -->

      <!-- Required SDK核心功能-->
      <activity
        android:name="cn.jpush.android.ui.PushActivity"
        android:configChanges="orientation|keyboardHidden"
        android:theme="@android:style/Theme.NoTitleBar"
        android:exported="false">
        <intent-filter>
          <action android:name="cn.jpush.android.ui.PushActivity" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="${applicationId}" />
        </intent-filter>
      </activity>

      <!-- Required SDK 核心功能-->
      <!-- 可配置android:process参数将PushService放在其他进程中 -->
      <service
        android:name="cn.jpush.android.service.PushService"
        android:process=":pushcore">
        <intent-filter>
          <action android:name="cn.jpush.android.intent.REGISTER" />
          <action android:name="cn.jpush.android.intent.REPORT" />
          <action android:name="cn.jpush.android.intent.PushService" />
          <action android:name="cn.jpush.android.intent.PUSH_TIME" />
        </intent-filter>
      </service>

      <!-- since 3.0.9 Required SDK 核心功能-->
      <provider
        android:authorities="${applicationId}.DataProvider"
        android:name="cn.jpush.android.service.DataProvider"
        android:process=":pushcore"
        android:exported="false"
      />

      <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->
      <!-- 若不启用该功能可删除该组件,或把 enabled 设置成 false ;App 不会被其他 App 拉起,但会拉起其他的 App。 -->
      <service
        android:name="cn.jpush.android.service.DaemonService"
        android:enabled="true"
        android:exported="true">
        <intent-filter>
          <action android:name="cn.jpush.android.intent.DaemonService" />
          <category android:name="${applicationId}" />
        </intent-filter>

      </service>

      <!-- 可选,如果使用静态Activity方式拉起,该组件必须声明 -->
      <activity android:name="cn.jpush.android.service.DActivity"
                android:enabled="true"
                android:exported="true"
                android:theme="@android:style/Theme.Translucent.NoTitleBar"
                android:taskAffinity="jpush.custom">
        <intent-filter>
          <action android:name="cn.jpush.android.intent.DActivity"/>
          <category android:name="${applicationId}" />
        </intent-filter>
      </activity>

      <!-- since 3.1.0 Required SDK 核心功能-->
      <provider
        android:authorities="${applicationId}.DownloadProvider"
        android:name="cn.jpush.android.service.DownloadProvider"
        android:exported="true"
      />

      <!-- Required SDK核心功能-->
      <receiver
        android:name="cn.jpush.android.service.PushReceiver"
        android:enabled="true">
        <intent-filter android:priority="1000">
          <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->
          <category android:name="${applicationId}" />
        </intent-filter>
        <intent-filter>
          <action android:name="android.intent.action.USER_PRESENT" />
          <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
        <!-- Optional -->
        <intent-filter>
          <action android:name="android.intent.action.PACKAGE_ADDED" />
          <action android:name="android.intent.action.PACKAGE_REMOVED" />

          <data android:scheme="package" />
        </intent-filter>
      </receiver>

      <!-- Required SDK核心功能-->
      <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>

      <!-- 3.5.0新增,用于定时展示功能 -->
      <receiver android:name="cn.jpush.android.service.SchedulerReceiver" android:exported="false"/>

      <!--since 3.3.0 Required SDK核心功能-->
      <activity
        android:name="cn.jpush.android.service.JNotifyActivity"
        android:exported="false"
        android:taskAffinity="jpush.custom"
        android:theme="@android:style/Theme.Translucent.NoTitleBar">
        <intent-filter>
          <action android:name="cn.jpush.android.intent.JNotifyActivity" />
          <category android:name="${applicationId}" />
        </intent-filter>
      </activity>

      <!-- since 3.5.6 新增华硕通道  -->
      <receiver android:name="cn.jpush.android.asus.AsusPushMessageReceiver"/>

      <meta-data android:name="JPUSH_CHANNEL" android:value="${JPUSH_CHANNEL}" />
      <meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}" />
    </application>

</manifest>

In App.js:

componentDidMount() {
  console.log('init jiguang')
  JPush.setLoggerEnable(true);
  JPush.init();
}

I don't see any services working in background in 'Running Services' from JPush. Also no errors in console.

Debug logs

包括 Android 或 iOS 的日志: Android 10

GeorgeMurAlkh avatar May 18 '20 18:05 GeorgeMurAlkh