Cordova / Phonegap Android Parse推送通知无法恢复应用

时间:2014-07-16 13:42:39

标签: cordova android-activity push-notification parse-platform phonegap-plugins

我在Cordova Android应用中使用Parse进行推送通知。通知正常到达,但当点击一个打开应用程序时,它会以黑屏打开。

当我点击Android设备后退按钮时,黑屏进入,后面会出现cordova应用程序。所以应用程序似乎不仅仅是恢复,而是打开一个空白的活动,我想。

我正在使用以下插件: https://github.com/benjie/phonegap-parse-plugin ,另外我在主要活动类中添加了一些额外的行,包含在下面:

package com.mycompany.myapp;

import android.os.Bundle;
import org.apache.cordova.*;

import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseInstallation;
import com.parse.PushService;

public class MyApp extends CordovaActivity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        super.loadUrl(Config.getStartUrl());

        // register device for parse
        Parse.initialize(this, APP_ID, PRIVATE_KEY);
        PushService.setDefaultPushCallback(this, MyApp.class);
        ParseAnalytics.trackAppOpened(getIntent());
        ParseInstallation.getCurrentInstallation().saveInBackground();
    }
}

那么我该怎样才能让应用程序从后台返回,而不是尝试采取任何具体行动并在顶部显示黑屏?

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,就我从解析文档

中可以看出,这是预期的结果
  

当客户端收到推送消息时,将显示通知   在系统托盘中。当用户点击通知时,他们会   通过新的YourActivity实例进入应用程序。

来自:https://parse.com/docs/android/api/com/parse/PushService.html

所以关键的是,它创建了一个新实例,我假设尝试加载我的index.html,但由于应用程序本身已经在运行,因此没有Cordova初始化或deviceReady。

当我找到一个解决方法时,我会发布它。

<强>更新

我错了,我的config.xml中有以下设置:

<preference name="KeepRunning" value="false"/>

删除修复它,因为它默认为true。来自Cordova文档:

  

KeepRunning(boolean,默认为true):确定是否   即使在暂停事件之后,应用程序仍在后台运行   火灾。将此设置为false不会在暂停后终止应用程序   事件,但只是停止在cordova webview中执行代码   而应用程序在后台。

http://cordova.apache.org/docs/en/3.5.0/guide_platforms_android_config.md.html#Android%20Configuration