2017-10-27 11 views
0

昨日、約50人のユーザーがアルファテストを開始した小さなアプリがあります。 React Nativeアプリです。 OneSignalによってプッシュ通知が処理され、これらはアプリを最大限に活用するために不可欠です。人々の80%のように、それはうまく働いています。彼らのデバイスは登録され、私はデータベースにuserIdを保存し、通知を送受信します。他の人には、私はuserIdを取得することさえできません。モバイルデバイスがOneSignalに登録されていない理由は何ですか?

すべてのユーザーは全く同じアプリを持っていますが、バリアントはありませんので、OneSignal appIdは間違いなく正しいです。

次のコードは、アプリケーションの起動時に実行されます。失敗したユーザーの場合は、registerOneSignal関数も呼び出されません。それは本当に奇妙な動作です。 OneSignalのバグでしょうか?

が反応し、ネイティブonesignal:v3.0.5

const alternateApproach = (device) => { 
    log.debug('onesignal ids', device) 
    this.activateOneSignal(device.userId, device) 
} 

const registerOneSignal = (status: SubscriptionStatus) => { 
    log.debug('onesignal state', status) 
    if (!status.userId) { 
    OneSignal.addEventListener('ids', alternateApproach) 
    return 
    } 
    this.activateOneSignal(status.userId) 
} 

OneSignal.getPermissionSubscriptionState(registerOnesignal) 
+0

あなたの 'registerOnesignal'が呼び出されていない場合、何らかの理由で' OneSignal.getPermissionSubscriptionState'が失敗することを意味します。たぶん弱いインターネット接続があるか、実際にはバグかもしれません。 OneSignalのサポートに連絡するのが最善の方法だと思います。 –

+0

私は実動コードでこれをデバッグしていました。しかし、 'registerOneSignal'が呼び出されたことを確認できますが、' getPermissionSubscriptionState'からの実際のコールバックは呼び出されません。私はサポートに連絡するのは残りの選択肢だと思う。 – FredyC

答えて

0

最後に、それは確かに、単に、事実から来て、私の側の間違いだったそのイベントを前に解雇されたときリスナーが付いていると、それは永遠に忘れられます。私はidsのイベントを私のアプリケーションの非常に早い時点で聞いていきました、そして今や皆のために働いているようです。

ちょっと変わったことですが、OneSignal.getPermissionSubscriptionStateはイベントではなく、タイミングに関係なくデータを取得するためにコールバックを呼び出す必要があります。 OneSignalモジュールにはいくつかのバグがあります。おそらく、あまりにも下にイベントがありますか?私はidsを聞いている同じポイントにこのメソッドの呼び出しを移動しました。 2つのテストを実行すると、毎回idsが呼び出されますが、そのメソッドのコールバックは決して呼び出されないことがあります。

関連する問題