Установка отложенного намерения для строителя в Onesignal NotificationExtenderService не обнаруживается - PullRequest
0 голосов
/ 31 мая 2018

Я хочу вызывать Webview_activity при уведомлении Нажмите, когда приложение убито, поэтому в NotificationExtender Service я прикрепил отложенное намерение со сборщиком, используя метод setContentIntent (), но ничего не происходит, когда уведомление касается.

Webview_activity успешновызывается, когда приложение живо, так как это обрабатывается уведомлениемOpened (), но когда приложение убито, вызывается onNotificationProcessing (), но при вызове уведомления Webview_activity не вызывается.

Я также читал, что Onesignal не обнаруживаетsetContentIntent () при подключении к сборщику вот ссылка: https://github.com/OneSignal/OneSignal-Android-SDK/issues/511 есть ли способ обойти?как я могу вызвать свою активность при нажатии уведомления, используя onNotificationProcessing () службы NotificationExtender, когда приложение убито.

 @Override
    protected boolean onNotificationProcessing(final OSNotificationReceivedResult notification) {
        Log.d(TAG, "onNotificationProcessing");
        final NotificationCompat.Builder[] newbuilder = new NotificationCompat.Builder[1];
        OverrideSettings overrideSettings = new OverrideSettings();
        overrideSettings.extender = new NotificationCompat.Extender() {
            @Override
            public NotificationCompat.Builder extend(NotificationCompat.Builder builder) {
                // Sets the background notification color to Green on Android 5.0+ devices.
                newbuilder[0] = builder;
                Intent intent = new Intent();
                try {
                    JSONObject data = notification.payload.additionalData;
                    if (data != null) {
                        String url = data.optString("url", null);
                        if (url != null) {
                            if (getApplicationContext() != null) {
                                Log.d(TAG, "context is not null");
                                intent = new Intent(getApplicationContext(), Webview_activity.class);
                                intent.putExtra("url", url);
                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                            } else {
                                Log.d(TAG, "context is null");
                            }
                        }
                    }

                    **PendingIntent pendIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                    newbuilder[0] = builder.setContentIntent(pendIntent);**

                } catch (Exception e) {
                    e.printStackTrace();
                }
                return newbuilder[0];
            }
        };

        overrideSettings.extender.extend(newbuilder[0]);
        OSNotificationDisplayedResult displayedResult = displayNotification(overrideSettings);
        Log.d("OneSignalExample", "Notification displayed with id: " + displayedResult.androidNotificationId);

        return true;
    }




@Override
    public void notificationOpened(OSNotificationOpenResult result)
    {
        Log.d(TAG,"notificationOpened");
        try {
            JSONObject data = result.notification.payload.additionalData;
            if (data != null) {
                String url = data.optString("url", null);
                if (url != null) {
                    if (context!=null)
                    {
                        Log.d(TAG,"context is not null");
                        Intent intent = new Intent(context, Webview_activity.class);
                        intent.putExtra("url", url);
                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        context.startActivity(intent);
                    }else {
                        Log.d(TAG,"context is null");
                    }
                }
            }
        }catch (Exception e)
        {
            e.printStackTrace();
        }
    }
...