Phonegap - OneSignal 推送通知 - 每当用户点击通知时应用程序都会重新启动

Posted

技术标签:

【中文标题】Phonegap - OneSignal 推送通知 - 每当用户点击通知时应用程序都会重新启动【英文标题】:Phonegap - OneSignal Push Notifications - app restarting whenever user taps on notification 【发布时间】:2016-12-08 02:52:01 【问题描述】:

好的...有一个 phonegap 应用程序,我正在设置它以使用 OneSignal 使用推送通知。我已经全部初始化了,我可以发送测试通知就好了。

当我在我的 android 设备 (Galaxy S6) 上进行测试时,推送会通过,但是当我点击通知时,它总是会重新加载应用程序,即使我已经打开它但不是焦点。不知道我在做什么使应用程序每次都加载。

另外值得注意的是,当应用程序重新加载时,handleNotificationReceived 函数永远不会被调用,所以我无法响应它。

不要以为是我的初始化代码,这里只是以防万一。

function InitializePushNotifications() 
    if (!_isNative)
        return;

    LogInfo('Initializing Push Notifications...');

    var iosSettings = ;
    iosSettings["kOSSettingsKeyAutoPrompt"] = true;
    iosSettings["kOSSettingsKeyInAppLaunchURL"] = false;

    window.plugins.OneSignal
        .startInit(config.Push, config.Google)
        .inFocusDisplaying(window.plugins.OneSignal.OSInFocusDisplayOption.None)
        .iOSSettings(iosSettings)
        .handleNotificationReceived(function(jsonData) 
            LogInfo('PUSH!: ' + jsonData.payload.title + " | " + jsonData.payload.body);
        )
        .handleNotificationOpened(function(jsonData) 
            ShowMySpecialScreen();
        )
        .endInit();

谢谢!


更新 根据 cmets 中的请求,以下是我们当前正在使用的插件:

<gap:plugin name="cordova-plugin-device" source="npm" spec="1.1.2" />
<gap:plugin name="cordova-plugin-device-orientation" source="npm" spec="1.0.3" />
<gap:plugin name="cordova-plugin-dialogs" source="npm" spec="1.2.1" />
<gap:plugin name="cordova-plugin-file" source="npm" spec="4.2" />
<gap:plugin name="cordova-plugin-file-transfer" source="npm" spec="1.5.1" />
<gap:plugin name="cordova-plugin-splashscreen" source="npm" spec="3.2.2" />
<gap:plugin name="cordova-plugin-whitelist" source="npm" />
<gap:plugin name="cordova-plugin-inappbrowser" source="npm" />
<gap:plugin name="onesignal-cordova-plugin" source="npm" spec="2.0.10" />
<gap:plugin name="cc.fovea.cordova.purchase" source="npm" version="6.0.0">
    <param name="BILLING_KEY" value="KEY GOES HERE" />
</gap:plugin>

【问题讨论】:

您使用的是PhoneGap Build (PGB) 而不是CLI?您可以从config.xml 添加完整的插件列表吗?其他插件会影响您应用的主 Activity 的启动方式。 @jkasten 更新了原帖! 【参考方案1】:

检查您的config.xml 以确保您没有设置AndroidLaunchMode。这必须保留默认值,即singleTop。这可以防止在打开通知时创建第二个 Android Activity

【讨论】:

你好!只是仔细检查...我没有将 AndroidLaunchMode 设置为任何我认为意味着它是默认值的东西。

以上是关于Phonegap - OneSignal 推送通知 - 每当用户点击通知时应用程序都会重新启动的主要内容,如果未能解决你的问题,请参考以下文章

Android 从 GCM 迁移到 oneSignal 推送通知

OneSignal 推送通知序列(顺序)不正确

控制屏幕上显示的 OneSignal 推送通知时间

如何使用 OneSignal 发送自定义声音推送通知?

OneSignal:推送通知不起作用

OneSignal 按下推送通知去一个视图控制器 iOS Swift