Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击onesignal通知时打开android webview应用程序_Webview_Push Notification_Onesignal - Fatal编程技术网

单击onesignal通知时打开android webview应用程序

单击onesignal通知时打开android webview应用程序,webview,push-notification,onesignal,Webview,Push Notification,Onesignal,谁能告诉我我错过了什么。我有一个webview应用程序。除此之外,它工作正常。当我关闭应用程序时,onesignal通知会正常到达,但当我单击通知时,应用程序不会打开。下面是一些与此问题相关的代码。 我一直在寻找解决办法,但我尝试过的方法都不起作用。 当应用程序运行时,通知会出现并正常打开,但当它关闭时,不会启动应用程序。 谢谢 } } 我解决了它。 您不需要NotificationOpenedHandler,只需要NotificationExtender扩展NotificationExten

谁能告诉我我错过了什么。我有一个webview应用程序。除此之外,它工作正常。当我关闭应用程序时,onesignal通知会正常到达,但当我单击通知时,应用程序不会打开。下面是一些与此问题相关的代码。 我一直在寻找解决办法,但我尝试过的方法都不起作用。 当应用程序运行时,通知会出现并正常打开,但当它关闭时,不会启动应用程序。 谢谢

}

}


我解决了它。 您不需要NotificationOpenedHandler,只需要NotificationExtender扩展NotificationExtender服务。它看起来像这样:

public class NotificationExtender extends NotificationExtenderService {

public NotificationExtender() {
    super();
}
@Override
protected boolean onNotificationProcessing(OSNotificationReceivedResult receivedResult) {
    Intent intent = new Intent(getApplicationContext(), NotificationActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    intent.putExtra("url", receivedResult.payload.launchURL);

    PendingIntent pendingIntent = PendingIntent.getActivity(
            getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);

    Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext())
            .setSmallIcon(R.drawable.ic_stat_onesignal_default)
            .setSound(uri)
            .setContentTitle(receivedResult.payload.title)
            .setContentText(receivedResult.payload.body)
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_onesignal_large_icon_default))
            .setColor(getResources().getColor(R.color.logo_color))
            .setAutoCancel(true)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());

    return true;
}
}

public class NotificationExtender extends NotificationExtenderService {

@Override
protected boolean onNotificationProcessing(OSNotificationReceivedResult notification) {
    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.
            return builder.setColor(new BigInteger("#005aaa", 16).intValue())
                    .setSmallIcon(R.drawable.ic_stat_onesignal_default);
        }
    };

    OSNotificationDisplayedResult displayedResult = displayNotification(overrideSettings);
    Log.d("OneSignalExample", "Notification displayed with id: " + displayedResult.androidNotificationId);

    return true;
}
 <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service
        android:name=".NotificationExtender"
        android:permission="android.permission.BIND_JOB_SERVICE"
        android:exported="false">
        <intent-filter>
            <action android:name="com.onesignal.NotificationExtender" />
        </intent-filter>
    </service>

    <activity
        android:name=".NotificationActivity"
        android:parentActivityName=".MainActivity"/>

    <meta-data android:name="com.onesignal.NotificationOpened.DEFAULT" android:value="DISABLE" />
public class NotificationExtender extends NotificationExtenderService {

public NotificationExtender() {
    super();
}
@Override
protected boolean onNotificationProcessing(OSNotificationReceivedResult receivedResult) {
    Intent intent = new Intent(getApplicationContext(), NotificationActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    intent.putExtra("url", receivedResult.payload.launchURL);

    PendingIntent pendingIntent = PendingIntent.getActivity(
            getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);

    Uri uri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getApplicationContext())
            .setSmallIcon(R.drawable.ic_stat_onesignal_default)
            .setSound(uri)
            .setContentTitle(receivedResult.payload.title)
            .setContentText(receivedResult.payload.body)
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.ic_onesignal_large_icon_default))
            .setColor(getResources().getColor(R.color.logo_color))
            .setAutoCancel(true)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());

    return true;
}