React-native-onesignal: onOpened / onReceivedイベントはAndroidでは発生しません

作成日 2018年07月09日  ·  35コメント  ·  ソース: OneSignal/react-native-onesignal

説明:
みなさん、こんにちは。 AndroidのonOpened / onReceivedイベントで問題が発生しました。 エミュレータと実際のデバイスでは動作が異なりますが、どちらの場合も正確なプッシュメッセージが配信されます。

エミュレーターの場合:

  1. フォアグラウンド-onReceivedイベントが呼び出され、プッシュがタップされた場合にのみonOpenedが呼び出されます(正しい)
  2. バックグラウンドがアクティブ-まったく起動されていません(正しくありません)
  3. バックグラウンド非アクティブ(アプリが閉じている)-onOpenedは、プッシュがタップされたときにのみ呼び出されます(正しい)

実際のデバイスの場合:

  1. 前景-まったく発火しなかった(正しくない)
  2. バックグラウンドがアクティブ-まったく起動されていません(正しくありません)
  3. バックグラウンド非アクティブ(アプリが閉じている)-onOpenedは、プッシュがタップされたときにのみ呼び出されます(正しい)

環境

  1. react-native-onesignal:「3.2.4」
  2. react-native: "0.50.4"
  3. compileSdkVersion: "27"
  4. buildToolsVersion: "27.0.3"
  5. gradle:「4.1」

問題を再現する手順:
私の会社の信頼の方針のため、複製するための手順を提供できません。

他に何か:
android/build.gradle

`` `//すべてのサブプロジェクト/モジュールに共通の構成オプションを追加できるトップレベルのビルドファイル。

buildscript {
リポジトリ{
jcenter()
グーグル()
}
依存関係{
クラスパス 'com.android.tools。 build:gradle :3.0.1 '

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

allprojects {
リポジトリ{
maven {url " https://jitpack.io "} // MPAndroidChartに使用
mavenLocal()
グーグル()
jcenter()
Maven {
//すべてのReactNative(JS、Obj-Cソース、Androidバイナリ)はnpmからインストールされます
url "$ rootDir /../ node_modules / react-native / android"
}
}
}

`android/app/build.gradle`

プラグインを適用します: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
プラグインを適用する:「com.android.application」

com.android.build.OutputFileをインポートします

buildscript {
リポジトリ{
maven {url'https ://plugins.gradle.org/m2/ '} // Gradleプラグインポータル
}
依存関係{
クラスパス 'gradle.plugin.com。 onesignal:onesignal-gradle-plugin :[0.10.0、0.99.99] '
}
}

プラグインを適用します: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

/ **

  • react.gradleファイルは、ビルドバリアントごとにタスクを登録します(例:bundleDebugJsAndAssets
  • およびbundleReleaseJsAndAssets)。
  • これらは基本的に、Androidビルド中に正しい引数を使用してreact-native bundleを呼び出します
  • サイクル。 デフォルトでは、bundleDebugJsAndAssetsはスキップされます。これは、debug / devモードでは
  • 開発サーバーから直接バンドルします。 以下に、可能なすべての構成を示します
  • およびそれらのデフォルト。 構成ブロックを追加する場合は、必ず前に追加してください。
  • apply from: "../../node_modules/react-native/react.gradle"行。
    *
  • project.ext.react = [
  • // JSバンドルを含む生成されたアセットファイルの名前
  • bundleAssetName: "index.android.bundle"、
    *
  • //バンドル生成用のエントリファイル
  • entryFile: "index.android.js"、
    *
  • // JSとアセットをデバッグモードでバンドルするかどうか
  • bundleInDebug:false、
    *
  • //リリースモードでJSとアセットをバンドルするかどうか
  • bundleInRelease:true、
    *
  • // JSとアセットを別のビルドバリアントにバンドルするかどうか(構成されている場合)。
  • // http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variantsを参照してください
  • //構成プロパティは次の形式にすることができます
  • // 'bundleIn $ {productFlavor} $ {buildType}'
  • // 'bundleIn $ {buildType}'
  • // bundleInFreeDebug:true、
  • // bundleInPaidRelease:true、
  • // bundleInBeta:true、
    *
  • //カスタムビルドバリアントで開発モードを無効にするかどうか(デフォルトではリリースでのみ無効になります)
  • //例:ステージングビルドタイプで開発モードを無効にする(構成されている場合)
  • devDisabledInStaging:true、
  • //構成プロパティは次の形式にすることができます
  • // 'devDisabledIn $ {productFlavor} $ {buildType}'
  • // 'devDisabledIn $ {buildType}'
    *
  • //プロジェクトのルート、つまり「package.json」が存在する場所
  • 根: "../../"、
    *
  • // JSバンドルアセットをデバッグモードにする場所
  • jsBundleDirDebug: "$ buildDir / Intermediates / Assets / debug"、
    *
  • // JSバンドルアセットをリリースモードにする場所
  • jsBundleDirRelease: "$ buildDir / Intermediates / Assets / release"、
    *
  • //ドローアブルリソースを配置する場所/ React Nativeアセット(例:経由で使用するアセット)
  • // require( './ image.png'))、デバッグモード
  • resourcesDirDebug: "$ buildDir / Intermediates / res / merged / debug"、
    *
  • //ドローアブルリソースを配置する場所/ React Nativeアセット(例:経由で使用するアセット)
  • // require( './ image.png'))、リリースモード
  • resourcesDirRelease: "$ buildDir / intermediates / res / merged / release"、
    *
  • //デフォルトでは、JSファイルまたはアセットが変更されていない場合、gradleタスクはスキップされます。 これの意味は
  • // android /またはios /のファイルを調べて、タスクが最大であるかどうかを判断しないこと
  • // 日にち; パフォーマンス上の理由で無視したい他のフォルダがある場合(gradle
  • //ツリー全体にインデックスを付けます)、ここに追加します。 または、android /にJSファイルがある場合
  • //たとえば、ここから削除したい場合があります。
  • inputExcludes:["android / "、 "ios / "]、
    *
  • //呼び出されるノードと追加の引数をオーバーライドします
  • nodeExecutableAndArgs:["node"]、
    *
  • //パッケージャに追加の引数を提供します
  • extraPackagerArgs:[]
  • ]
    * /

project.ext.react = [
cliPath: "node_modules / haul / bin / cli.js"
]

適用元: "../../ node_modules / react-native / react.gradle"

/ **

  • これをtrueに設定すると、1つではなく2つの別々のAPKが作成されます。

    • ARMデバイスでのみ機能するAPK


    • x86デバイスでのみ機能するAPK

  • 利点は、APKのサイズが約4MB削減されることです。
  • すべてのAPKをPlayストアにアップロードすると、人々はダウンロードします
  • デバイスのCPUアーキテクチャに基づいた正しいもの。
    * /
    def enableSeparateBuildPerCPUArchitecture = false

/ **

  • Proguardを実行して、リリースビルドでJavaバイトコードを縮小します。
    * /
    def enableProguardInReleaseBuilds = false

アンドロイド{
compileSdkVersion 27
buildToolsVersion "27.0.3"

defaultConfig {
    applicationId "com.binomysteryshopper"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    vectorDrawables.useSupportLibrary = true
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
signingConfigs {
      release {
          if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
              storeFile file(MYAPP_RELEASE_STORE_FILE)
              storePassword MYAPP_RELEASE_STORE_PASSWORD
              keyAlias MYAPP_RELEASE_KEY_ALIAS
              keyPassword MYAPP_RELEASE_KEY_PASSWORD
          }
      }
  }
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86"
    }
}
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}

}

依存関係{
コンパイル(project( ':react-native-onesignal')){
グループを除外: "com.google.android.gms"
}
コンパイル( "com.google.android.gms:play-services-base:12.0.1"){
force = true;
}
プロジェクトをコンパイルします( ':react-native-sound')
プロジェクトをコンパイルします( ':react-native-audio')
プロジェクトをコンパイルします( ':react-native-fetch-blob')
プロジェクトをコンパイルします( ':react-native-fs')
プロジェクトをコンパイルします( ':react-native-geocoder')
プロジェクトをコンパイルします( ':react-native-image-crop-picker')
プロジェクトをコンパイルします( ':react-native-version-check')
プロジェクトをコンパイルします( ':react-native-charts-wrapper')
プロジェクトをコンパイルします( ':react-native-spinkit')
プロジェクトをコンパイルします( ':react-native-svg')
プロジェクトをコンパイルします( ':react-native-maps')
fileTree(dir: "libs"、include:["* .jar"])をコンパイルします
com.android.support:appcompat-v7:23.0.1 」をコンパイルします
コンパイル "com.facebook。react :react-native :+" // node_modulesから
}

//これを1回実行すると、BUCKでアプリケーションを実行できるようになります
// BUCKが使用できるように、すべてのコンパイル依存関係をフォルダーライブラリに配置します
task copyDownloadableDepsToLibs(type:Copy){
configuration.compileから
'libs'に
}

`android/app/src/main/java/com/binomysteryshopper/MainApplication.java`

パッケージcom.binomysteryshopper;

import android.app.Application;

インポートcom.facebook.react.ReactApplication;
インポートcom.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
インポートcom.zmxv.RNSound.RNSoundPackage;
インポートcom.rnim.rn.audio.ReactNativeAudioPackage;
インポートcom.RNFetchBlob.RNFetchBlobPackage;
インポートcom.rnfs.RNFSPackage;
インポートcom.reactnative.ivpusic.imagepicker.PickerPackage;
import io.xogus.reactnative.versioncheck.RNVersionCheckPackage;
インポートcom.github.wuxudong.rncharts.MPAndroidChartPackage;
インポートcom.react.rnspinkit.RNSpinkitPackage;
インポートcom.horcrux.svg.SvgPackage;
インポートcom.facebook.react.ReactNativeHost;
インポートcom.facebook.react.ReactPackage;
インポートcom.facebook.react.shell.MainReactPackage;
インポートcom.devfd.RNGeocoder.RNGeocoderPackage;
インポートcom.facebook.soloader.SoLoader;
インポートcom.airbnb.android.react.maps.MapsPackage;

java.util.Arraysをインポートします。
import java.util.List;

パブリッククラスMainApplicationextendsApplicationはReactApplicationを実装します{

private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this){
@オーバーライド
public boolean getUseDeveloperSupport(){
BuildConfig.DEBUGを返します。
}

<strong i="13">@Override</strong>
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
        new ReactNativeOneSignalPackage(),
        new RNSoundPackage(),
        new ReactNativeAudioPackage(),
        new RNFetchBlobPackage(),
        new RNFSPackage(),
        new PickerPackage(),
        new RNVersionCheckPackage(),
        new MPAndroidChartPackage(),
        new RNSpinkitPackage(),
        new RNGeocoderPackage(),
        new SvgPackage(),
        new MapsPackage()
  );
}

<strong i="14">@Override</strong>
protected String getJSMainModuleName() {
  return "index";
}

};

@オーバーライド
public ReactNativeHost getReactNativeHost(){
mReactNativeHostを返します。
}

@オーバーライド
public void onCreate(){
super.onCreate();
SoLoader.init(this、/ *ネイティブexopackage * / false);
}
}

`AndroidManifest.xml`

package = "com.binomysteryshopper">









android:minSdkVersion = "16"
android:targetSdkVersion = "22" />

android:name = "。MainApplication"
android:allowBackup = "true"
android:label = "@ string / app_name"
android:icon = "@ mipmap / ic_launcher"
android:largeHeap = "true"
android:theme = "@ style / AppTheme">

<activity
  android:name=".MainActivity"
  android:launchMode="singleTop"
  android:label="@string/app_name"
  android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
  android:screenOrientation="portrait"
  android:windowSoftInputMode="adjustResize"
  android:theme="@style/AppTheme">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="binoshopper" />
    </intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />


`my OneSignal init`

componentWillMount(){
OneSignal.init(ONESIGNAL_APP_ID、{
kOSSettingsKeyAutoPrompt:true、
kOSSettingsKeyInAppLaunchURL:false、
kOSSSettingsKeyPromptBeforeOpeningPushURL:true、
})
OneSignal.inFocusDisplaying(2)

OneSignal.addEventListener('received', this.onPushNotificationReceived)
OneSignal.addEventListener('opened', this.onPushNotificationOpened)

}

componentWillUnmount(){
OneSignal.removeEventListener( 'received'、this.onPushNotificationReceived)
OneSignal.removeEventListener( 'opened'、this.onPushNotificationOpened)
}

onPushNotificationReceived(notification){
Alert.alert( 'onReceived')//実際のデバイスでのテスト用
}

onPushNotificationOpened(openResult){
Alert.alert( 'onOpened')//実際のデバイスでのテスト用
}
`` `

最も参考になるコメント

@sofianegargouriこれがPRです: https ://github.com/geektimecoil/react-native-onesignal/pull/592

明日または翌日にアップデートをリリースします。

全てのコメント35件

IOSでは完璧に動作しています。 残念ながら、実際のデバイスを持っていないため、androidlogcatからログを提供することはできません。 TeamViewerを使用して、遠く離れた友人のデバイスでテストしていました。

また、実際のデバイスでOneSignal.setLogLevel(0, 6)を試してみました。 しかし、エラーは見つかりませんでした。すべてのリクエストは成功し、イベントのみが発生しませんでした。

こんにちは@ Ble3k 、私たちは最近新しいFlutter SDKの作業に忙しく、まだ問題を調査する時間がありませんが、明日調査し、すぐに返信します。遅れて申し訳ありません。

こんにちは、

開発デバイスの3.2.5でも同じ動作が見られると言いたかっただけです。 最近何も変更していないので奇妙です。数日前にうまくいったと確信しています。フォーカスされたプッシュがアプリ内トーストとして表示されるので、これらをテストして機能していたことを覚えています。

アプリがフォーカスされている場合でも通常のプッシュ通知に移行することにしたため、これ以上調査しません

@ Nightsd01 Thx、あなたの調査を待ちます。

通知の受信が遅れるAndroidの場合、Androidスマートフォンでテストし、30〜40分後に通知を受信し、複数回テストしました

これに関する更新はありますか? Androidデバイス(Samsung Galaxy S7)でも同じ問題が発生しています。

onOpenedまたはonReceivedイベントは発生していませんが、通知は受信されています。 onOpenedイベントが発生したときに、ユーザーを特定の画面に移動できるようにする必要があります。

Rを2回押すか、react-native-restartパッケージを使用して、react Native androidアプリをリロードした後にイベント(受信、オープン)が発生しないという問題がありますか?

@ackosumane私は実際に開発ワークフローでExpoとUpdates.reload()を頻繁に使用しています。

そして、あなたは正しいです:

  • アプリの最初の起動時にコールバックを起動することができます
  • 最初のアプリのリロード後にコールバックが発生しません

@ Nightsd01したがって、OneSignal RN Android統合は現在、アプリのリロードを十分にサポートしていないようです。 ほとんどの場合、ユーザーがアプリをリロードしないと思っていたほど影響はありませんが、ユーザーにアプリをリロードさせたい本番環境のケースがあります(Expo / CodePushなどのOverTheAirの更新、またはユーザーのログアウト?)。 そのような場合、リロード後にプッシュが壊れないのは素晴らしいことです;)

@ Nightsd01こんにちは、更新はありますか?

こんにちは、私も同じ問題に直面しています。これに対する解決策はありますか?

この問題の更新として:次の更新でこれを修正する予定です!

@Nightsd01日付は? 修正でフォークできるブランチはありますか?

@sofianegargouriこれがPRです: https ://github.com/geektimecoil/react-native-onesignal/pull/592

明日または翌日にアップデートをリリースします。

ありがとう@ Nightsd01 、この問題は閉じることができると思います

修正を加えた新しいnpmリリースを公開できますか?

この問題にこだわった人にとっては、マスターからのコードは現在うまく機能しています。

次を実行するだけです。

npm install git + https://github.com/geektimecoil/react-native-onesignal#master --save

@ eabuslaiman30まだ問題に直面しています。 上記のように、私はgit + https://github.com/geektimecoil/react-native-onesignal#masterを使用しています。 それでも、Androidではどのイベントもトリガーされません。 誰でも安定している最新バージョンを提案できますか? 以前は、アプリが強制終了され、Android 8.0(Oreo)で通知が受信されないことを除いて、正常に機能していた3.0.5バージョンを使用していました。 この問題を修正するために、最新バージョンに更新すると、このエラーが発生します。

@ eabuslaiman30 @ Nightsd01私も試しましたが、@ shahchaitanyaのようにまだ問題に直面しています。

リスナーが再度サブスクライブしないように修正するように見えるPRを作成しました: https ://github.com/geektimecoil/react-native-onesignal/pull/593

@shahchaitanyaこの小さな変更でローカルプロジェクトのJavaコードを編集できます。これにより、問題が一時的に解決するはずです。

ちょっと@slorberあなたのソリューションはonOpenedとonReceivedメソッドをトリガーします。 しかし、onIdsイベントはまだトリガーされていませんか? onIdsイベントがトリガーされているかどうかをコードで確認しましたか? 最新バージョンが安定するまで、react-native-onesignalバージョン3.0.5に固執することを考えていました。

テストしたところ、onIdsから始めて、アプリの再起動時に3つのコールバックがすべて起動しました。

onIdsが起動しなかったとしても、再起動時にIDが変更される可能性は低く、すでにバックエンドに送信されているため、大した問題にはなりません。

@slorber私にとって、アプリの再起動時にonIdsが起動しなかった場合は大したことです。 idTokenをローカルストレージとバックエンドにも保存します。 サインアウト時にバックエンドから削除しました。ユーザーがローカルストレージをクリアした場合、onIdsが毎回起動されなかった場合、どうすればユーザーのidTokenを取得できますか。 3.2.0(メジャーアップデート)までの以前のバージョンでは、アプリの再起動中に毎回onIdsがトリガーされていました。

やあみんな@ slorber @ shahchaitanya。 私の実装コードのいくつかをコピーさせてください、多分それはあなたを助けるでしょう(私は以前のバージョンでは必要とされなかったコードのいくつかの行を追加する必要がありました)。

OneSignal.init('YOUR_APP_ID');
OneSignal.addEventListener('ids', this.onIds);
OneSignal.configure();

たとえば、初期化は明らかにJavaコードから行われていたため、以前のバージョンでは「init」関数を使用していませんでした。

また、依存関係としてnpm install git+https://github.com/geektimecoil/react-native-onesignal\#master --saveを使用しており、3つのイベント(onIds、received、opened)を正しく受信しています。

また、initとconfigureを使用していますが、configureを呼び出さないときにIDが起動しないという問題があったことを覚えています。

    OneSignal.init(OneSignalAppId, OneSignalSettings);
    OneSignal.addEventListener('received', onReceived);
    OneSignal.addEventListener('opened', onOpened);
    OneSignal.addEventListener('ids', onIds);
    // Quickfix for ids event not firing!
    // See https://github.com/geektimecoil/react-native-onesignal/issues/200#issuecomment-288579373
    OneSignal.configure();
    OneSignal.inFocusDisplaying(inFocusDisplaying);
    OneSignal.setSubscription(true);
    OneSignal.syncHashedEmail(email);
    OneSignal.sendTags(tags);

@slorber @ eabuslaiman30これで正常に動作しています。 OneSignal.configure()を追加できませんでした。 以前は、onIdsリスナーをトリガーするためにそれを必要としませんでした。 ねえ@slorber今私はあなたが上で述べたそのパッチを追加する必要はありません。 @ eabuslaiman30ソリューションは完全に正常に機能しています。

完璧な@shahchaitanya 、うまくいったことをうれしく思います!

この修正を含む公式リリースがまもなくリリースされます。

最近、Android SDKのやや重大な問題を修正したので、公式のreact-nativeアップデートをリリースする前に、そのPRがレビューされるのを待っています。

皆さん、今しばらくお待ちいただきますようお願いいたします。 その間、あなたは単にマスターを使うことができます

@shahchaitanya idsイベントは、ユーザーのIDまたはOneSignalの変更を伴うプッシュトークンが発生するたびに発生することを目的としています。 前回アプリを使用してから変更されていない場合、イベントはデフォルトで発生しません。

これはレガシーコードを混乱させるものです。次のメジャーリリースでリファクタリングして、より直感的にするつもりです。

configure()を呼び出すことで強制的に発砲させることができますが、お勧めしません。 より洗練された解決策は、ユーザーのOneSignal IDを含むOneSignal.getPermissionSubscriptionState()を呼び出すことです。

問題は3.2.6で修正されるはずです(他のいくつかのものと一緒に)。 皆さん、今しばらくお待ちいただきますようお願いいたします。

こんにちは! 私はまだAndroidでこの問題を抱えています(iOSを完全にチェックしていません)。

  • アプリにフォーカスがあります-開かれたイベントは正しく発生します
  • アプリが却下されました-開かれたイベントが正しく発生します
  • バックグラウンドのアプリ-開かれたイベントは発生しません

私は3.2.6リリースを使用しており、イベントリスナーの設定は...

componentDidMount() {

        OneSignal.init(APP_ID, { kOSSettingsKeyAutoPrompt: true });

        OneSignal.addEventListener('ids', this.onIds);

        OneSignal.addEventListener('opened', (result) => alert('text'));

        OneSignal.inFocusDisplaying(2);

        // OneSignal.setLogLevel(0, 6);

        OneSignal.configure();
}

componentWillUnmount() {
    OneSignal.removeEventListener('ids', this.onIds);
    OneSignal.removeEventListener('opened', (result) => alert('text'));
}

@joefazz問題を再現できませんyarn remove react-native onesignalyarn add react-native-onesignalを実行して、3.2.6に更新されていることを確認してください。 もしそうなら、私は問題を再開します。

問題は100%発生しますか?

この問題をデモプロジェクトで再現できますか?

これは100%の確率で発生し、削除して再読み込みした後も発生します。

私は今日のいつか再現しようとします、そして私は私の発見でこのコメントを編集します。

それがどれほど関連性があるかはわかりませんが、私が取り組んでいるプロジェクトでは、バージョン3.0.9を使用し、3.2.6にアップグレードしました。 私はreact-nativeunlinkを実行してから再リンクし、iOSを手動でアップグレードし、OneSignal.init()メソッドを使用するためにすべてのネイティブ初期化を削除しました。

編集:何が起こったのかわかりませんが、Androidでは100%動作しています。クローズされた問題についてコメントして申し訳ありませんが、ご協力いただきありがとうございます😅

3.2.6以降でこの問題が再び発生した場合は、新しい問題を開いてください。

@joefazz聞いてよかった! 最初の問題の原因となった問題を修正しましたが、何らかの競合状態が発生している可能性があります。 この問題が再び発生した場合は、新しい問題を開いてください。

私のアプリでは、新しいバージョンで問題が修正され、 @ joefazzによって報告された動作が表示されません

こんにちは、私は同じ問題を抱えていますOneSignal.addEventListener('opened', (result) => console.log(result));はアプリの2回目の起動から起動されません。 バックグラウンドモードでは、最初の通知は「opened」イベントを取得しています。アプリを強制終了します=> get Notification =>「opened」は二度と発生しません。

アンドロイドのみ-8バージョン
アプリがバックグラウンドであった場合の2回目の通知後のみ
react-native-onesignal-3.9.1

私は同じ問題を抱えています。 アプリがバックグラウンドであるときに開かれた電話はありません修正はありますか

@ kostiantyn-solianyk @shrolr
要約すると、「opened」イベントは、Android8でアプリを2回目に開いたときに発生しません。

従来のイベントは、次のメジャーリリース(現在はベータ版)で非推奨になっています。 ベータ版に移行して、問題の再現を試みることをお勧めします。

問題が解決しない場合は、新しい問題を開いてお知らせください。

乾杯

このページは役に立ちましたか?
0 / 5 - 0 評価